在显式结束响应时调用Express.js下一个中间件层
express.js next middleware tier being called when explicitly ending the response
我遇到了以下行为:
当我挂载了多个express中间件时,请求继续向下级联到下一个中间件,即使我通过在前一个中间件中使用res.json()
显式地结束请求。还要注意,我没有在上述中间件的任何地方调用next()
。
app.use('/v1/status', function (req, res, next) {
res.json({ status: 'ok' });
});
app.use(function (req, res, next) {
console.log('I always get called');
});
这是"新"行为吗?因为根据我的理解(和4x文档),这是不应该发生的。
任何帮助都将非常感激。
express v4.13.0 on Mac OSX
所以我在了不起的@dougwilson的帮助下发现了这个问题。他建议我打印被请求的url,我看到/favicon.ico
正在打印。
仔细检查后,我看到第一个中间件实际上完成了请求,但是图标请求仍然挂起。这就是第二个中间件被调用的原因。这与res.json()
不能正常工作无关。
从来没有遇到过这个问题,它让我发疯了!谢谢大家的帮助!
相关文章:
- '会话'未定义-会话存储的Este JS/Express/Redis
- 节点JS express和控制台输出到命令行与浏览器
- Node.js/Express未输出console.log,highcharts.js给出未定义的错误
- 使用React.js+Express.js发送电子邮件
- 基本node.js express身份验证不起作用
- node.js express处理其他.get尝试
- 在 Node.js(Express)Facebook 画布应用程序中获取signed_request
- Node.js & Express 不能用简单的 Bootstrap 表单发布/错误
- 节点.js + Express - 在完成之前返回未定义的回调
- Node.JS Express服务器无法从Enide运行
- TypeError:undefined不是node.js/express.js中的函数
- node.js-express.js API删除http后处理程序
- 如何使用Ember Ajax从Node JS Express传入数据
- Node.js/express,javascript回调函数未执行
- 在Heroku Node.js/Express应用程序上禁用HTTPS
- Node.js Express应用程序:如果存在cookie,则从服务器端向元素添加CSS类
- Node.js+Express+socket.io-socket.io服务不正常
- Node.js express应用程序无法从dropzone.js回调进行重定向
- 如何在 A 节点.js/Express 服务器上接收一些文件并将文件发送到 B 节点.js/express 服务器
- Node.js / Express :通过 ajax 下载文件