JS

[JS] Node.js 내장 모듈 : HTTP ?

emayom 2021. 10. 12. 23:16

Node js 는 하나도 못알아먹겠다.

프로젝트도 끝났으니까... 공부하자 이마욤,,,

http 모듈에 대해 알아보자,,,,,,🙄


 

 

우선 그냥 http 모듈을 사용해보자.

아래는 서버 객체를 생성했지만,

8080 포트로 접속하더라도 리스너가 등록되지않은

아무런 응답을 하지않는 코드이다 ..!

 

var http = require('http');
var server = http.createServer();
server.listen(8080);

 

http.createServer([options][, requestListener])

 

여기서 createServer() 메서드에 리퀘스트 리스너? 함수를 넘겨주고,

8080 포트를 문제없이 띄웠을 때 Hello Node.js를 화면에 출력 / 응답하도록 찍어보자!

 

//1.
var http = require('http');
var server = http.createServer();

//on() => 'request', 'connection', 'close'
//'connection' 되었을 때
server.on('connection', (socket) => {
  console.log("Connected!");
});

//'request' 되었을 때
server.on('request', (req, res) => {
  res.writeHead(200, { 'Content-Type': 'text/html' });
  res.write(`<h1>Hello Node.js!</h1>`);
  res.end(); //end()해주지 않으면 대기 => 리소스 낭비
});

//'close' 되었을 때 
server.on('close', () => {
  console.log("Bye!");
});

server.listen(8080);

 

여기서 ctrl + c로 닫으면 close 멘트가 나올 줄 알았는데 안나와서

찾아봤더니 ㅎㅎㅎㅎㅎㅎㅎㅎ 자체적으로 닫아줘야한다고 한다.... 

 

//추가 => 5초 뒤에 알아서 서버를 닫도록..,,, 
setTimeout(() => {
    server.close();
}, 5000);

 

 

같은 기능이지만 아래처럼 다른 방법으로도 사용해보장!

 

//2.
var http = require('http');

//req: request (client -> server), res: response (server -> client)
const Welcome = (req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(`<h1>Hello Node.js!</h1>`);
    res.end();
}

var server = http.createServer(Welcome).listen(8080);

 

마지막으로 W3C의 예제처럼 간편하게 ..? 작성할 수도 있다 ✏️

 

//3.
var http = require('http');

/*
http.createServer(function(req, res) {
    res.writeHead(statusCode, statusMessage, header);
    res.write(); => 클라이언트에 제공할 응답
    res.end(data, encoding, callback);
}).listen(port);
*/


http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.write(`<h1>Hello Node.js!</h1>`);
    res.end();
).listen(8080);

 

 

 


⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :)  ⚠️
***    혹시라도 잘못된 정보가 있다면  언제든지 알려주시면 감사하겠습니다  !    ***

 

 

Node.js Built-in Modules

Node.js Built-in Modules Node.js has a set of built-in modules which you can use without any further installation. Here is a list of the built-in modules of Node.js version 6.10.3: Module Description assertProvides a set of assertion tests bufferTo handle

www.w3schools.com