Ghe*_*man 7 javascript node.js express
express.js 文档指出,如果next()在路由中从未调用过,则
该请求将被搁置
( https://expressjs.com/en/guide/writing-middleware.html )
这意味着什么?这是否意味着next()即使我已经调用res.send并且请求处理已完成,我也应该完成每个请求?如果我省略它会不会有内存泄漏或其他问题?
更新:我确实将中间件与路由混淆了。我忘记了循环可以结束。但我不知道如何结束它。
这意味着什么?
这意味着请求/响应周期仍未完成。响应不会发送到浏览器,浏览器会一直等待。
这是否意味着即使我已经调用 res.send 并且请求处理已完成,我也应该使用 next() 完成每个请求?
整个句子是...
如果当前中间件函数没有结束请求-响应循环,则必须调用 next() 将控制权传递给下一个中间件函数。否则,请求将被挂起。
因此,如果您打算在当前中间件中结束循环,您可以只调用 res.send、res.end 或 res.json 而无需 next()。但是如果你打算去下一个中间件,你应该调用 next() 否则它不会去下一个中间件。
如果我省略它会不会有内存泄漏或其他问题?
如果请求/响应周期没有完成,那么分配给该周期的内存将不会返回,这意味着内存泄漏。
| 归档时间: |
|
| 查看次数: |
1908 次 |
| 最近记录: |