Express를 사용하면 웹 서버를 구동하기가 아주 편리해집니다. 또한 Express는 미들웨어 프레임워크 를 적용하여 사용하기 때문에 웹 서버 개발의 아주 많은 도움이 되는데요. 웹 서버에 등록되지 않은 페이지 혹은 URI 로 들어가면 아래와 같은 오류 명령어 가 뜨는 경우가 대다수 있었을 것입니다.
이런 경우 Express에서는 어떻게 처리하면 내가 원하는 페이지 혹은 문자열이 나오게 할 수 있는지 에 대해 알아보도록 하겠습니다.
# Contents
- 오류 핸들러 작성
- 오류 핸들러 라이브러리 사용
# 오류 핸들러 작성
라우터 미들웨어의 경우에는 등록된 라우터 순으로 처리되어집니다. 라우터가 등록된 코드 끝까지 확인 한 후에 등록되지 않은 패스일 경우에 오류 메시지를 뿌려주는 것 이죠. 그러면 라우터 마지막 코드 아래에 express 객체의 use 혹은 all을 사용 하여 원하는 데이터를 뿌려주기만 하면 끝나는 것입니다. 아래 예제를 보시죠.
//* Set up router. */
// app.use("/", homeRouter);
// .. etc ..
app.use(errorRouter);
//* Set up Router Error Handler. */
function errorHandler(req, res) {
const errorObj = {
code: "404",
message: "NotFoundError: Not Found",
};
res.json(errorObj);
}
이렇게 간단하게 오류를 Json 형태의 데이터로 전송하였습니다. 다음은 라이브러리를 사용하여 오류 페이지로 이동해주는 코드를 작성해보도록 하겠습니다.
# 오류 핸들러 라이브러리 사용
먼저 express-error-handler 라이브러리 를 다운받아 주세요.
npm install --save express-error-handler
라이브러리를 설치한 후 아래 코드를 라우터 밑에 삽입 해주세요.
var errorHander = expressErrorHandler({
static: {
404: "./views/home/404.ejs",
},
});
app.use(expressErrorHandler.httpError(404));
app.use(errorHander);
원하는 디렉토리의 파일명으로 변경한 후 서버를 시작해보면 URI가 없어도 아래와 같은 페이지가 로드 되게 됩니다.
'오픈소스 > 노드' 카테고리의 다른 글
[Node] Audio Raw PCM data 에서 amplitude 추출 (0) | 2021.10.06 |
---|---|
[Node] Express 서버에서 Form을 이용하여 여러 개 데이터 전송 (0) | 2021.10.06 |
[Node] 04. 콜백을 사용한 비동기 제어 흐름 패턴 (0) | 2021.10.06 |
[Node] 03. 콜백과 이벤트 (0) | 2021.10.05 |
[Node] INI 라이브러리를 통한 환경설정 파일 구현 - ini Parser - (0) | 2021.10.05 |