Express에 대해 알아보자.
Express
Express에 가보면, Express란 ‘Node.js를 위한 빠르고 개방적인 간결한 웹 프레임워크’ 라고 정의되어 있습니다.
이전 포스트에서 Node.js는 브라우저 외의 환경에서도 javascript로 작성된 파일을 구동할 수 있게 해준다고 했습니다.
Express는 Node.js 환경에서 서버를 구성할 수 있게 만든 클래스와 라이브러리의 집합체라고 볼 수 있습니다.
http 모듈만 사용해서 웹 서버를 구성하면 직접 많은 기능을 개발해야 하지만 Express 프레임워크를 사용하면 간단한 코드로 웹 서버의 기능을 대부분 구현할 수 있습니다.
또한, Express는 프레임워크이므로 미들웨어와 라우터 등의 기능을 사용하여 편리하게 웹 서버를 구성할 수 있으며 개발 규칙을 강제하여 코드 및 구조의 통일성을 향상시킵니다.
설치
1
npm i express
Express와 http 비교
1
2
3
4
5
6
7
8
9
10
11
12
13
// http 모듈
const http = require("http");
const port = 3000;
http
.createServer(function (request, response) {
response.writeHead(200, { "Content-Type": "text/html" });
response.write("Hello http");
response.end();
})
.listen(port, function () {
console.log("http server");
});
1
2
3
4
5
6
7
8
9
10
11
12
13
//express 모듈
const express = require("express");
const app = express;
const port = 3000;
// router
app.get("/", (req, res) => {
res.send("Hello express");
});
app.listen(port, () => {
console.log("express server");
});
Express 사용
1
2
3
4
5
6
7
8
// node_modules 에 있는 express 관련 파일을 가져옵니다.
var express = require("express");
// ES6 import (package.json의 type을 module로 설정 시 사용)
import express from "express";
// express는 함수이므로, 반환값을 변수에 저장한다.
const app = express();
Express 모듈의 메서드
app.set(key, value)
서버 설정을 위한 함수app.get(key)
설정된 서버 속성을 꺼내올 수 있습니다.app.use([path], function, [function, ...])
미들웨어 함수 사용미들웨어
Express에서 요청이 들어올 때 응답 까지의 중간과정을 함수로 분리해 사용합니다.
이렇게 분리한 각각의 것들을 미들웨어라고 부릅니다.즉, 서버와 클라이언트를 이어주는 중간작업이라 생각하면 됩니다.
미들웨어는 use()를 이용해 등록을 할 수 있고, next()를 이용해 다음 미들웨어로 넘길 수 있습니다.
(next()가 생략되는 미들웨어도 존재합니다.)
라우팅 Routing
Client의 요청 (URL 및 특정 HTTP 요청 메서드)에 애플리케이션이 응답하는 방법을 결정하는 것입니다.
각 라우트는 하나 이상의 핸들러 함수를 가질 수 있으며, 이러한 함수는 라우트가 일치할 때 실행됩니다.
- 구성
app.Method(Path, Handler)app
: express의 인스턴스Method
: HTTP 요청 메서드Path
: 서버의 경로Handler
: 일치할 때 실행될 함수
1
2
3
4
5
6
7
8
// '/' 경로에 GET 요청이 올 경우 "hello world"로 응답한다.
app.get("/", (req, res) => {
res.send("hello world");
});
app.post("/", (req, res) => {
res.send("Got a POST request");
});
Express 서버 구축
express 설치
Nodejs를 설치한 후npm init
명령어로 프로젝트를 초기화하고package.json
파일을 생성합니다.npm i express
명령어로 express 모듈을 설치합니다.Express 기반 서버 구동
app.js
파일을 만들어 코드를 작성합니다.1 2 3 4 5 6 7 8 9 10 11 12 13
import express from "express"; const app = express(); // route app.get("/", (req, res) => { res.send("Hello World!"); }); // 3000 포트로 서버 오픈 app.listen(3000, () => { console.log("express server on port 3000"); });
서버 실행
1
node app.js
결론
Express에 대해 알아보고 Hello World를 출력하는 간단한 웹 서버를 구축했습니다.