[TIL] 유데미 X 사람인 취업 부트캠프 29일차 / node.js
1. Node 서버 생성
(1) 기본 구조
const http = require("http");
const server = http.createServer((req, res) => {
console.log(req);
});
server.listen(3000); //포트번호는 3000번으로 한다
(2) 실행
- 터미널에 node 파일명.js 입력
- localhost:3000으로 이동하면 아무 일도 발생하지 않지만, 터미널에는 입력된다
- 아직 응답을 반환하지 않는 상태
(3) 정리
- 터미널에서 node 파일명.js를 실행하면 스크립트가 시작되어 Node.js가 파일 전체를 살펴보고 코드를 분석한 후 변수와 함수 등록
- 이벤트루프로 인해 프로그램을 끄지 않은 상태
2. Node의 라이프사이클 및 이벤트 루프
- 이벤트 루프 : 코어 노드 애플리케이션은 이벤트 루프에 의해 관리됨
- process.exit : 이벤트 종료
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req);
process.exit();
});
server.listen(3000);
(사용 전과 달리, 다음 줄로 넘어간 것을 확인할 수 있음)
3. 요청 정보에 대한 접근
- localhost3000 페이지에 들어갔을 때 들어오는 요청에 있는 모든 데이터를 통해 Node.js가 대신 생성해 준 요청 객체 (해당 포트에 있는 요청을 듣고 있기 때문)
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req.url, req.method, req.headers);
});
server.listen(3000);
- 링크인 '/'가 보인다
- GET 메서드가 보인다
4. 응답 객체
(1) 헤더 작성하기
- setHeader(디폴트 헤더, 인수)
- 디폴트 헤더 : 브라우저가 알고 이해하며 받아들이는 것
- 인수 : 헤더 키에 대응하는 값을 설정하고 text/html에 전송하거나 설정할 수 있음
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req.url, req.method, req.headers);
res.setHeader('Content-Type', 'application/json');
});
server.listen(3000);
- 위와 같이 설정하면 응답에 헤더를 붙이게 되고, 응답의 일부가 될 콘텐츠 유형은 HTML이라는 일련의 메타 정보를 전달하게 됨
(2) html 파일 작성하기
const http = require('http');
const server = http.createServer((req, res) => {
console.log(req.url, req.method, req.headers);
// process.exit();
res.setHeader('Content-Type', 'text/html');
res.write('<html>');
res.write('<head><title>My First Node.js Page</title></head>');
res.write('<body><h1>Hello from my Node.js Server!</h1></body>');
res.write('</html>');
res.end();
});
server.listen(3000);
[회고]
다른 공부를 하느라 노드제이에스를 끝까지 못들었다 ㅠㅠ 힘내서 주말에 하자,,,,,,