我期待通过快递发生器产生app.js
,并有下面的代码:为什么下面的处理程序确定为404处理器
app.use('/', index);
app.use('/users', users);
// catch 404 and forward to error handler
app.use(function (req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
我的问题是,为什么在过去的中间件功能被确定为函数当not found
错误应该返回时执行?
是否基于这样的假设:如果调用此函数,则意味着没有其他中间件/路由器函数完成处理与res.send()
的请求,因此对请求不感兴趣,因此可能没有处理请求的处理程序?如果是这样,那么应该总是最后添加这个处理函数,正确吗?
是的,没错。这是因为它是最后一个,即*没有更多有效的路由,因此这必须是一个错误。* –
是的,它完全如您所述 –