ExpressJS-오류 처리

Express의 오류 처리는 미들웨어를 사용하여 수행됩니다. 그러나이 미들웨어에는 특별한 속성이 있습니다. 오류 처리 미들웨어는 오류 처리 기능을 제외하고는 다른 미들웨어 기능과 동일한 방식으로 정의됩니다.MUST have four arguments 세 개 대신에 err, req, res, next. 예를 들어 오류에 대한 응답을 보내려면 다음을 사용할 수 있습니다.

app.use(function(err, req, res, next) {
   console.error(err.stack);
   res.status(500).send('Something broke!');
});

지금까지 우리는 경로 자체에서 오류를 처리하고있었습니다. 오류 처리 미들웨어를 사용하면 오류 논리를 분리하고 그에 따라 응답을 보낼 수 있습니다. 미들웨어에서 논의한 next () 메서드는 다음 단계로 이동합니다.middleware/route handler.

오류 처리를 위해 next(err)함수. 이 함수를 호출하면 모든 미들웨어를 건너 뛰고 해당 경로에 대한 다음 오류 처리기에 연결합니다. 예를 통해 이것을 이해합시다.

var express = require('express');
var app = express();

app.get('/', function(req, res){
   //Create an error and pass it to the next function
   var err = new Error("Something went wrong");
   next(err);
});

/*
 * other route handlers and middleware here
 * ....
 */

//An error handling middleware
app.use(function(err, req, res, next) {
   res.status(500);
   res.send("Oops, something went wrong.")
});

app.listen(3000);

이 오류 처리 미들웨어는 경로 뒤에 전략적으로 배치하거나 오류 유형을 감지하고 그에 따라 클라이언트에 응답하는 조건을 포함 할 수 있습니다. 위의 프로그램은 다음과 같은 출력을 표시합니다.