最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

使用ExpressJS处理错误

运维笔记admin15浏览0评论

使用ExpressJS处理错误

使用ExpressJS处理错误

我尝试使用ExpressJS处理503和500错误,但它只适用于404错误。

我的中间件:

var error = function(server) {

  // 404
  server.app.use(function(request, response) {
    response.status(404);
    response.redirect('/404');
  });

  // 500
  server.app.use(function(error, request, response, next) {
    response.status(500);
    response.redirect('/500');
    next(error);
  });

  // 503
  server.app.use(function(error, request, response, next) {
    response.status(503);
    response.redirect('/503');
    next(error);
  });
};

module.exports = error;

我的控制器中的功能(使用路线):

function error500(request, response) {
  response.render('0-templates/' + response.locals.options.template + '/500', {
    _layoutFile: false,
    error: //how to get the error ?
  });
}
回答如下:

您缺少error回调的404参数,这导致表示相信它是一个中间件而不是错误处理程序,因此对于通过所述中间件的每个请求返回404。

您还应该将next参数添加到所有错误处理程序。

来自express documentation on error handling:

以与其他中间件函数相同的方式定义错误处理中间件函数,除了错误处理函数有四个参数而不是三个:(err,req,res,next)。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论