有没有办法,在最终调用 response
对象上的 end
之前,我可以连续向客户端发送响应?
有一个巨大的文件,我想读取、解析然后将分析结果发送回客户端。是否有可能我读完一行就继续发送回复?
response.send
也会调用 end
,所以我无法使用它。
最佳答案
您想使用res.write
,它发送响应正文内容而不终止响应:
This sends a chunk of the response body. This method may be called multiple times to provide successive parts of the body.
请注意,write
不包含在 Express documentation 中。因为它不是 Express 特有的函数,而是继承自 Node 的核心 http.ServerResponse
,而 Express 的响应对象则扩展自:
The
res
object is an enhanced version of Node's own response object and supports all built-in fields and methods.
但是,处理流数据总是有点棘手(请参阅下面关于意外超时的警告的评论),因此重组应用程序以通过 WebSocket 发送流数据可能会更容易。 ,或socket.io与不支持 WebSocket 的浏览器兼容。
关于node.js - 不断向客户端发送响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42907269/