SEB Section 2 Express
우리는 Node를 통해 Server를 만드는 작업을 했었는데, 이를 조금 더 간편하게 만들수 있는 프레임워크가 있다. 이번 시간에는 express를 이용하여 server를 만들어 보자.
express 설치
express를 사용하기 위해선 express를 설치를 해야 한다.
npm install express
npm install을 통해 express를 설치를 하고 import를 해주면 사용 준비 끝이다.
// 1
const express = require("express");
const app = express();
// 2
import express from "express";
const app = express();
Server 생성
Server를 여는 것도 마찬가지로, listen을 통해 열면 된다.
import express from "express";
const app = express();
app.listen(3000);
미들웨어 함수
express에서는 요청, 응답의 권한을 미들웨어 함수에게 갖도록 하고 있다. 따라서 미들웨어 함수는 다음의 테스크를 수행 할 수 있다.
- 모든 코드를 실행
- 요청 및 응답 오브젝트에 대한 변경을 실행
- 요청-응답 주기를 종료
- 스택 내의 그 다음 미들웨어를 호출
현재의 미들웨어 함수가 요청-응답을 종료하지 않는 경우 next()를 통해 그 다음 미들웨어 함수에 제어를 전달해야 한다. 그렇지 않으면 해당 요청은 정지된 채로 방치된다.
미들웨어 함수 호출의 요소는 무엇일까?
이렇게 구성이 되어 있다.
’/’ uri에 ‘Hello World!’ 응답하기
’/’ uri에 ‘Hello World!’를 응답을 보내려면, 다음과 같은 미들웨어 함수를 만들어야 한다.
import express from "express";
const app = express();
app.get("/", (req, res) => {
res.send("Hello World!");
});
app.listen(3000);
응답을 받아와야 함으로 Http method 중에서는 get을 사용을 해야 할 것이다. 또한 uri는 ‘/’ 이므로, 첫 번째 전달인자에 ‘/’ 넣어줘야 한다. 다음으로 두 번째 인자에 req, res 콜백 인수를 넣게 되고, 우리는 응답을 보내줘야 함으로 res를 써야 한다. 응답을 보내는 것은 res.send(‘Hello World!’) 로 사용한다.
Route
express도 코드 관리를 용이하게 하기 위해 uri로 나누어 분리를 시켜 놓는 라우팅을 사용할 수 있다. 라우터를 만들어 관리하는 방법은 여러가지 이다.
import express from 'express'
import 라우터 이름 from '해당 경로'
const app = express();
app.use(라우터 이름)
이렇게 사용을 하게 되는데 라우터에 가서 미들웨어 함수를 만들어 해당 uri의 동작을 만들면 된다.
오류 처리
오류는 미들웨어 함수의 두 번째 인자에 err를 넣어 오류가 발생을 하면 오류가 나오도록 하여, 어떤 부분에서 오류가 나타났는지에 대해 알 수 있다. 또한 우리가 웹 어플리케이션을 이용 했을 때, 오류를 화면에 띄우지 않고 빈 창의 페이지를 띄우면 사용자는 오류가 났는지에 대해 모를 것이다. 따라서 status code와 에러 메세지를 통해 사용자에게 에러가 났다는 것을 알려 주어야 한다.
댓글남기기