RISK IT

[TIL20_23.1.28.] [NodeJS] Node 서버 생성 본문

IT/TIL

[TIL20_23.1.28.] [NodeJS] Node 서버 생성

nomoremystery 2023. 1. 28. 15:00
반응형

node Coure Modules

  • http: 서버를 출시하거나 요청을 보내는 작업
  • https: 모든 전송 데이터가 암호화되는 SSL 암호화 서버를 출시할 때 유용
  • fs
  • path
  • os

서버 생성

👇 Arrow function을 활용한 서버 생성

const http = require('http');

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

server.listen(1000);
  • {}안에 있는 함수를 createServer 콜백함수라고 부른다.
const http = require('http');
  • require에는 다른 파일 경로나 자바스크립트 파일을 불러올 수 있다.
  • 만약 /(절대경로)나 ./(상대경로)를 입력한 후 http를 입력하면 뒤에 .js가 붙어서 자동적으로 자바스크립트 파일을 찾게 된다.
  • 우리는 http라는 로컬파일을 찾을 것이기 때문에 경로를 입력하지 않는다.
  • 경로를 생략하면 http라는 글로벌 모듈을 찾게 되는데 이는 Node.js에 탑재된 모듈 중 하나다.
const server = http.createServer((req, res) => {
  console.log(req);
});
  • .createServer()는 서버를 만들 때 꼭 필요한 메소드
  • createServer위에 마우스를 올리면 requestListener를 인수로 가진다고 나옴. requestListener는 들어오는 모든 요청을 실행하는 기능

createServer() 위에 마우스 올렸을 때

server.listen(1000);
  • .listen()은 Node.js가 스크립트를 바로 종료하지 않고 계속 실행되면서 듣도록 한다.
  • .listen()의 여러 인수 중 첫 번째 인수는 port 번호인데, 실무에서는 대게 포트 번호를 입력하지 않고, 기본으로 포트 번호 80이 사용되지만 로컬 개발 환경에서는 1000 사용했음.
  • 터미널에서 node app.js로 실행해보면 종료가 안됨.
  • listen이 계속 실행하고 있기 때문.
  • 브라우저에서 localhost:1000을 쳐서 들어가면
    console.log(req)에 의해 터미널에 요청 로그 남음

app.js 실행 후 요청 로그 기록

 

다른 방식으로 표현

👇 requestListener 함수 만들어서 서버 생성

const http = require('http');

function rqListener(req, res) {}

http.createServer(rqListener);

👇 함수 명확하게 생성하지 않고 익명의 함수를 사용하는 방법

const http = require('http');

http.createServer(function (req, res) {});
  • 이것이 Node.js의 주된 EDA(Event Driven Architecture)이다.
  • 앞으로 이 같은 설정이나 코드 스니펫을 자주 사용할 것.
  • 코드 스니펫: 노드에게 X가 일어나면 Y를 실행하라. 즉, 이 경우에는 요청이 들어오면 이 함수를 실행하라 알려주는 것.
  • 위의 두 경우는 server.listen 생략
반응형