express()는 Node.js로 웹서버를 구현하기 위한 대표적인 라이브러리 이다.
Node.js의 내장 라이브러리인 http 혹은 net으로도 웹서버를 구축할수
있는데, 대부분 express로 구현을 합니다!
http , net으로 한번이라도 서버를 구축해보셨다면
express 사용에대한 감사함을 느낄거십니다!
Node.js의 내장모듈인 net을 이용하여 구현을 해보면
const net = require("net");
const PORT = process.env.SERVER_PORT || 3000;
const HOST = process.env.SERVER_HOST || "127.0.0.1";
=======================================================
const server = net.createServer((client)=>{
client.setEncoding("utf8");
const res = resFn(client);
client.on("data",(chunk)=>{
const req = reqFn(chunk)
console.log(req);
})
});
============================================================
server.on("connection",()=>{
console.log("connected to client")
})
server.listen(PORT,HOST,()=>{
console.log("Server Start");
});
내장모듈 net의 사용을 require로 불러온다고 생각하시면됩니다.
PORT와 HOST를 프로세스의 환경변수에있는것으로 등록하거나 없을시에 등록해주었습니다
const server = net.createServer(()=>{}) 를 통해 서버를 생성해주었고
setEncoding("utf8")을 통해 응답받은 data는 utf8언어로 번역하였습니다.
client.on("data",()=>{})
-> javascript에서 addEventListener로 생각하면 편합니다. data가 들어왔을시 콜백함수를
실행합니다.
server.on("connection,()=>{})
-> 서버에 클라이언트가 connection 했을때 콜백함수를 실행합니다.
server.listen(PORT,HOST,()=>{})
-> 초기 서버를 열어놓는 작업입니다. 대기상태로 부르고있습니다. 서버를 대기시켜놓는다!
여기까지가 server.js 부분입니다. 간단하게
변수들을 선언해주었고 , createServer로 서버를 관리해주며,[.listen],[.on]
으로 connection과 data를 받아 request와 response를 해줍니다
이후에 req.js 파일과 res.js 파일을 만들어서
요청과 응답에대한 구분을 해줍니다..
express를 사용하기위해서는 먼저 설치를해야하는데,
npm init -y
npm install express
를 순차적으로 하면 설치가 됩니다.
기본적으로 http와net을 이용하여 서버를 구축하였을때
request,response 쪽에서 반복하여 작업하였던것들을
express를 사용함으로써 많이 줄일수 있고
그로인해 코드 가독성도 올라갑니다.
const express = require("express");
const app = express();
const PORT = process.env.SERVER_PORT || 3000;
app.listen(PORT,()=>{
console.log("Server Start")
})
웹 서버 구현 시 내장 라이브러리인 http가 아니라 express가 사용되는 이유는 무엇인가?
라는 질문의 답을 간단하게 말하자면 가볍고, 코드를 분리하기 편하고,
가독성이 높고, 편리하기 때문이라고 할 수 있겠습니다.
'Node.js' 카테고리의 다른 글
Sequelize에 대해 알아보자 (1) (0) | 2023.01.17 |
---|---|
Node.js - Express 환경 쿠키(Cookies)에대해 알아보자 (0) | 2023.01.02 |
Node.js express.Router() 간단하게 알아보자 (1) | 2022.12.21 |
Node.js template engine 사용하기(nunjucks) (0) | 2022.12.21 |
Node.js 기본개념 및 실행방법 그리고 Module과 require() 간략하게 알아보자 (0) | 2022.12.07 |