티스토리 뷰
500 Internal server error
직접 내리려면 면 throw new Error 를 사용하여 테스트하면 된다
router.get('/', (req,res,next)=>{
throw new Error("BadRequest");
});
app.use(function(req, res, next) {
res.status(500).sendFile(path.resolve(__dirname, "public", 'errorpage/500.html'));
//
res.status(500).send({status:500, message: 'internal error', type:'internal'});
});
404 에러
app의 최하단에 정의하면 된다
app.use(function(req, res, next) {
//next(createError(404));
res.status(404).sendFile(path.resolve(__dirname, "public", 'errorpage/404.html'));
});
API 에서 직접 응답을 지정
( HTTP 상태코드 )
app.get('/', (req,res)=> {
res.status(401).send("이 요청은 인증이 필요하다. 서버는 로그인이 필요한 페이지에 대해 이 요청을 제공할 수 있다");
});
next() 를 사용
미들웨어로 처리할 수 있다, next(error)를 통해 Error handler middleware로 이동하여 처리한다.
var express = require('express');
var app = express();
app.get('*', function(req, res, next) {
var error = new Error('My Error occurred');
error.status = 500;
next(error);
});
app.use(logHandler);
app.use(errorHandler);
// logger middleware
function logHandler(err, req, res, next) {
console.error('[' + new Date() + ']\n' + err.stack);
next(err);
}
// error handler middleware
function errorHandler(err, req, res, next) {
res.status(err.status || 500);
res.send(err.message || 'Error!!');
}
app.listen(3000, function() {
console.log('Express server listening on port ' + 3000);
});
source : poiemaweb.com/express-error-handling
'■ 백엔드 ■ > NodeJS' 카테고리의 다른 글
yarn berry install 에러 "The "yarn-path" option has been set..." (0) | 2022.06.28 |
---|---|
Passport local authentication flowchart (0) | 2022.03.18 |
기존 cookie clear의 한계, 그냥 cookie overwrite로 해결 (0) | 2020.09.04 |
A cookie associated ... `SameSite` attribute ( Node.js example for SameSite=None; Secure ) (0) | 2020.08.24 |
express - multiple routes in a single line (0) | 2020.07.21 |
댓글