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不返回任何响应给html

在 ExpressJS 响应中返回异步等待 try/catch 抛出错误 [重复]

EXTJS-仅当不存在时创建新选项卡

在 expressjs 中提供带有响应对象的 HTML 文件时,如何包含外部 JavaScript 文件?

如何从 expressjs 发送 jwt 令牌以响应应用程序? [关闭]

ExpressJS 连接到回调的多个中间件