서버 생성
const http = require('http');
const server = http.createServer((req, res) => {
//서버를 생성
});
- HTTP 요청이 서버에 들어오면 node가 transaction을 다루려고, reqest와 response 객체를 전달하며 요청 헨들러 함수를 호출한다
- 요청을 처리하려면 listen 메서드가 server 객체에서 호출 되어야한다. 대부분 서버가 사용하고 있는 포트 번호를 listen에 전달하면 된다.
Method, URL, Header
요청을 처리할 때, 우선 메서드와 URL을 확인한 후 이와 관련된 적절한 작업을 실행한다.
Body
스트림에 이벤트 리스너를 등록하거나 다른 스트림에 파이프로 연결할 수 있다. 스트림의 'data'와 'end'이벤트에 이벤트 리스너를 등록해서 데이터를 받을 수 있다.
각 'data' 이벤트에서 발생시킨 결과는 Buffer이다.이 결과 값은 문자열 데이터이다. 이 데이터를 배열에 수집한 뒤 'end' 이벤트에서 이어 붙인 다음 문자열로 만드는 것이 가장 좋다.
const server = http.createServer((req, res) => {
const url = req.url; // what?
const method = req.method; // how? action?
if (url === '/courses') {
if (method === 'GET') {// 사용자가 데이터를 가지고(읽고) 싶다면,
res.writeHead(200, {'Content-Type': 'application/json'});
res.end(JSON.stringify(courses));
} else if (method === 'POST') {
const body = [];
req.on('data', chunk => {
console.log(chunk);
body.push(chunk); // 버퍼 형태의 데이터를 배열에 담음.
});
req.on('end', () => {
const course = JSON.parse(Buffer.concat(body).toString());
// Buffer 형태의 데이터를 문자열로 풀어준 뒤 배열에 담음.
courses.push(course);
console.log(courses);
res.writeHead(201);
res.end();
})
}
}
});
✔ 참고
https://nodejs.org/ko/docs/guides/anatomy-of-an-http-transaction/
'Node.js' 카테고리의 다른 글
19. [NPM] dependencies vs. devDependencies (0) | 2022.05.04 |
---|---|
17. chunk, buffer , stream (0) | 2022.04.08 |
16. Stream (0) | 2022.04.08 |
15. body-parser (0) | 2022.03.11 |
14. CORS (0) | 2022.03.11 |