개발언어/Node.js

NodeJS 서버

Surge100 2022. 8. 2. 17:13

nodemon설치

npm i nodemon -g

 

HTTP

http에는 다양한 interface,class,method등 많은 것들이 들어 있다.

const http = require("http");
const http2 = require("http2"); // https

console.log(http.STATUS_CODES);
console.log(http.METHODS);

http.STATUS_CODES 출력

http.METHODS 출력

많은 상태코드와 메서드들도 확인해 볼 수 있다.


NodeJS로 Server 만들기

const http = require("http");

const server = http.createServer();

http.createServer()메서드는 다양한 option을 줘서 설정 할 수 있다. 혹은 option을 주지 않고, 바로 listener를 등록할 수 있다.

 

RequestListener

반환 값이 없는 형태의 callback 함수이다. 요청이 오고, 또 반응을 할 때 사용할 수 있는 response 객체도 전달을 해준다.

 

Listen

const http = require("http");

const server = http.createServer((req, res) => {
  console.log("incoming...");
});

server.listen(8080);

server 변수만 등록한다고 해서 server로 동작하는 것이 아니라 만들 server에 listen할 port 번호를 등록해주어야 한다.


Listen URL에 요청하기

그 뒤에 브라우저를 통해 등록한 port에 localhost로 접속하면, incoming 신호가 들어오고 무언가 계속 대기 중이지만, loading이 완료되지는 않는다.

 

왜냐하면 요청은 왔는데 거기에대한 응답을 지정해주지 않았기 때문이다.

 


req정보 출력하기

const http = require("http");

const server = http.createServer((req, res) => {
  console.log("incoming...");
  console.log(req.headers);
  //req의 header 정보
  console.log(req.httpVersion);
  //req에 담긴  httpVersion에 관한 정보
  console.log(req.method);
  //req가 어떤  method로 들어왔는지
  console.log(req.url);
  //req가 어떤 url로 요청하는지
});

server.listen(8080);


res등록하기

const http = require("http");

const server = http.createServer((req, res) => {
  console.log("incoming...");
  console.log(req.headers);
  //req의 header 정보
  console.log(req.httpVersion);
  //req에 담긴  httpVersion에 관한 정보
  console.log(req.method);
  //req가 어떤  method로 들어왔는지
  console.log(req.url);
  //req가 어떤 url로 요청하는지

  res.write("Welcome!");
  res.end();
});

server.listen(8080);

=> URL 요청 결과

[출처 -https://academy.dream-coding.com/courses/node ]