본문 바로가기
카테고리 없음

[TIL] 유데미 X 사람인 취업 부트캠프 29일차 / node.js

by 상똥 2024. 1. 26.

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);

 

 

[회고]

다른 공부를 하느라 노드제이에스를 끝까지 못들었다 ㅠㅠ 힘내서 주말에 하자,,,,,,