최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

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

댓글