我在搜索有关node.js
express
模块的网络和文档,并发现似乎没有办法分段发送数据。我有一个文件渲染得不太快,我想在所有内容都被渲染之前就发送它的部分。
所以这里是我的问题:
response
中是否有一种方法可以按部分发送数据?response.end()
是什么意思?- 如果没有办法分段发送数据 - 其背后的原理是什么?我会说如果这是真的,看起来比非阻塞更具阻塞性。如果提前给出数据,浏览器可以更快地加载信息。
简化示例代码:
app.get(..) {
renderFile(file, function(data) {
response.send(data);
});
response.end();
)
这段代码只发送了第一个数据块。我已经检查过 - 数据确实被正确地给出,回调函数也被调用了不止一次。
当然,我可以将数据附加到一个变量中,然后编写 response.send(data);
,但我不喜欢这种方法 - 这不是它应该工作的方式。
sourceStream.pipe(response)
将解决问题。 - Brad