【发布时间】:2016-12-29 18:04:02
【问题描述】:
我正在查看express生成器生成的app.js,有如下代码:
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() 的请求的处理,因此对该请求不感兴趣,因此可能没有处理程序要求?如果是这样,那么这个 404 处理函数应该总是最后添加,对吗?
【问题讨论】:
-
是的,完全正确。这是因为它是最后一个,即没有更多有效路线,因此这一定是一个错误。
-
是的,和你说的完全一样
标签: javascript node.js express middleware