错误处理和404处理中间件的顺序
Order of the error-handling and 404-handling middlewares?
express.js网站把我弄糊涂了,因为有两个相互矛盾的陈述:
最后定义错误处理中间件,在其他app.use()和路由调用
之后定义——/指导/error-handling.html
和
你所需要做的就是在堆栈的最底部(在所有其他函数下面)添加一个中间件函数来处理404响应
——/起动器/faq.html
它似乎在告诉我这两个中间件层应该是堆栈中的最后一个…?嗯,那又怎样,我最后要添加两个app.use
中间件层吗?这是不可能的……
无论如何,显然其中一个页面忘记提到另一个例外,所以我想知道:我应该最后注册哪个中间件?错误处理程序还是404处理程序?
我想要这两个函数,但我不确定他们需要在express正常工作的顺序:
app.use(function(req, res, next) {
res.status(404).send('Sorry cant find that!');
});
app.use(function(err, req, res, next) {
console.error(err.stack);
res.status(500).send('Something broke!');
});
我也想知道,我是否需要从任何处理程序内调用next
?
这个顺序并不重要,因为你的最后一个中间件只会被调用,当在一些中间件中next(err)
被调用之前。如果没有其他东西处理(并完成)请求,则始终会调用404中间件。
对于你的第二个问题:不,当你用res.send()
完成请求时,你不想在其中任何一个中调用next()
。
相关文章:
- InnerHTML创建问题,没有't加载顺序正确,可能存在处理问题
- 按随机顺序对元素进行动画处理
- 如果我向同一个webworker发送多条消息,它会将它们排队并按顺序处理吗
- 如何使用javascript中的间隔以顺序方式处理websocket响应
- 使用ScrollMagic按顺序对多个场景进行动画处理
- if 和 else 语句处理的顺序是什么
- Html5 Websocket 和顺序处理队列
- 开发模式下 Rails 3.2 的请求处理顺序
- 在 JS 中,如果通过卸载调用两个函数,浏览器以什么顺序处理它们
- 使用纯 JavaScript 更改事件处理程序执行的顺序
- 如何按顺序处理函数,而不是一次全部处理
- jQuery Mobile 会干扰 PhoneGap 中脚本处理的顺序吗?
- 加载 XML 和 JS 以严格顺序处理它
- 网络工作者发布消息处理顺序
- Angular JS:按顺序处理承诺(无链接)
- 让元素的子元素单独但按顺序进行动画处理
- 如何按照请求的顺序处理 jquery ajax 请求
- Jquery事件处理顺序:首先单击ele:s本身或父级
- Angular, Promises, foreach在textarea,并保持处理顺序
- Javascript回调——为什么它们的处理顺序不同?