Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Express.js是否支持发送无缓冲的逐渐刷新的响应?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_772_0@ @H_607_1@
@H_772_0@
Perl的Catalyst框架允许您通过一个开放的连接发送逐渐刷新的响应.你可以使用 write_fh() on Catalyst::Response.我已经开始使用Node.js,我找不到如何做等效的.

如果我想发送一个大的CSV文件,按200毫秒的顺序有没有办法这样做,而不是缓冲内存中的整个CSV文件?如果您不在一定时间内发送数据,客户端会暂停,所以如果 – 但是有没有这样做?

当我尝试在回调中执行res.send(文本)时,我得到

Express
500 Error: This socket has been ended by the other party

而且,似乎没有Express.js支持显式的socket.close()或任何其他的.

这是一个例子,

exports.foo = function (res) {                          
  var query = client.query("SELECT * FROM naics.codes");
  query.on('row',function(row) {                       
    //console.log(row);                                 
    res.write("GOT A ROW");                             
  });                                                   
  query.on('end',function() {                          
    res.end();                                          
    client.end();                                       
  });                                                   
};

我会期望为每行发送“GOT A ROW”,直到对client.end()的调用表示完成.

解决方法

Express是建立在本http模块上的,这意味着res是一个 http.ServerResponse的实例,它从 @L_616_11@接口继承.也就是说,你可以这样做:

app.get('/',function(req,res) {
  var stream = fs.createReadStream('./file.csv');
  stream.pipe(res);

  // or use event handlers
  stream.on('data',function(data) {
    res.write(data);
  });

  stream.on('end',function() {
    res.end();
  });
});

您不能在Express中使用res.send()方法的原因是因为它会为您自动使用res.close().

@H_772_0@

大佬总结

以上是大佬教程为你收集整理的node.js – Express.js是否支持发送无缓冲的逐渐刷新的响应?全部内容,希望文章能够帮你解决node.js – Express.js是否支持发送无缓冲的逐渐刷新的响应?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:expressexpress.jsjs刷新发送响应支持是否缓冲逐渐
猜你在找的Node.js相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap