expressjs:当不调用响应方法时,哪些选项将挂起请求
Posted
技术标签:
【中文标题】expressjs:当不调用响应方法时,哪些选项将挂起请求【英文标题】:expressjs: which options will hang the request when response methods are not called 【发布时间】:2021-11-25 10:36:05 【问题描述】:当未从路由处理程序调用响应方法时,以下哪些代码(选项)将挂起用户请求。
选项 1: app.get('/user', function(req, res, next) res.redirect('/user/all'); )
选项 2: app.get('/user', function(req, res, next) )
选项 3: app.get('/user', function(req, res, next) console.log('处理请求'); )
选项 4: app.get('/user', function(req, res, next) res.send('用户数据'); )
选项 5: app.get('/user', function(req, res, next) 重发(); )
【问题讨论】:
【参考方案1】:选项 2,3 因为他们没有调用任何 res.(methods) 来关闭 http 请求。
res.redirect(...)
res.send(...)
res.end()
都在其内部实现中调用 res.end()。该方法将关闭 http tcp 连接并响应客户端。
【讨论】:
所以,从您的回答中我看到选项 2 和 3 会挂起请求,对吗? 是的,您必须调用内部调用res.end()
的res
方法之一来关闭客户端已启动的http tcp 连接。以上是关于expressjs:当不调用响应方法时,哪些选项将挂起请求的主要内容,如果未能解决你的问题,请参考以下文章
在 ExpressJS 响应中返回异步等待 try/catch 抛出错误 [重复]
在 expressjs 中提供带有响应对象的 HTML 文件时,如何包含外部 JavaScript 文件?