Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- Next.js
- 디자인 패턴
- oracle
- JavaScript
- 데이터베이스
- 프로그래머스
- 프런트엔드
- 코드테스트
- 스프링부트
- 스프링
- 코드 테스트
- 정리
- spring
- 프론트엔드
- 쿼리
- BACK-END
- java
- jpa
- SQL
- 서버
- web
- 자바
- 백엔드
- 자바스크립트
- node.js
- 미니정리
- jsp
- 오라클
- MySQL
- 알고리즘
Archives
- Today
- Total
참치코더의 꿈 메모장
Node.js// request모듈, cheerio모률, async 모듈(1) 본문
728x90
request모듈
request모듈은 웹페이지에 있는 코드를 긁어오는데 사용하는 Node.js 모듈이다.
|
1
2
3
4
5
|
const request = require('request');
request('http://google.com',(error, response, body)=>{
console.log(body);
});
|
cs |
request 첫번째에 긁어오려고 하는 url주소를 매개변수로 입력하고 두번째에 리턴 함수를 입력하여 긁어온다.
cheerio 모듈
cheerio 모듈은 HTML 문자열을 jQuery 객체로 만들어주는 객체이다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
const request = require('request');
const cheerio = require('cheerio');
for(let i=1; i<5; i++){
request(`http://www.hanbit.co.kr/store/books/new_book_list.html?page=${i}&brand=&cate1=&cate2=&searchKey=&keyWord=`,function(error,response,body){
if(!error && response.statusCode == 200){
const $ = cheerio.load(body);
const array = [];
$('.sub_book_list').each(function(){
const title = $(this).find('.book_tit').text().trim();
const writer = $(this).find('.book_writer').text();
array.push({
title: title.trim(),
writer: writer.split(',').map((item)=> item.trim())
});
});
console.log(array);
}
});
};
|
cs |
8번째 줄에서 const $ = cheerio.load(body); 를 사용하여 request객체로 받은 코드의 내용중에 body 부분을 jquery 형태로 변환한다.
그리고 아래에는 그 body 안에 있는 sub_book_list 클래스의 제목명과 작가명을 추출하였고 , 배열에 push 하여 데이터를 얻었다.
이처럼 간단하게 jquery를 사용할수 있겠끔 해주는 것이 cheerio객체이다.
async 모듈- 여러개를 한번에 보내기 (1)
async 모듈은 코드의 흐름을 관리하거나 파일 처리를 할 때 사용하는 모듈이다.
|
1
2
3
4
5
6
7
8
|
const fs = require('fs');
const async = require('async');
var files = ['TextFile1.txt','TextFile2.txt','TextFile3.txt'];
async.map(files, fs.readFile, (error, results)=>{
console.log(results);
});
|
cs |
가상의 파일 TextFile1,TextFile2,TextFile3 가 있다고 가정을 한다면 async 모듈에서 map 함수를 포함해서 여러가지 함수가 있을 수도 있는데
보통 여러개의 파일을 한번에 보낼때는 map 함수가 사용된다. map에서 첫번째에는 한번에 보내려고 하는 파일의 배열이 들어가게 되고
2번째에는 fs의 메서드 그리고 마지막에는 데이터를 전달하는 리턴함수가 들어가게 된다.
위와 같은 코드로 사용하면 여러개의 파일을 한번에 보낼수 있는 편리한 코드가 만들어 진다.
728x90
'Node.js' 카테고리의 다른 글
| Node.js// socket.io 모듈 (1) (0) | 2020.02.29 |
|---|---|
| Node.js// router, static , morgan , cookie parser 미들웨어 (0) | 2020.02.18 |
| Node.js // jade 특수기호 , supervisor (0) | 2020.02.12 |
Comments