一尘不染

在结束响应之前如何输出数据?

node.js

这是我在Chrome 11和Firefox 4中测试过的代码段:

var http = require('http');

http.createServer(function(request, response){
   // Write Headers
   response.writeHead(200);

   // Write Hello World!
   response.write("Hello World!");

   // End Response after 5 seconds
   setTimeout(function(){ 
        response.end(); 
   }, 5000);

}).listen(8000);

如您所见,我超时了,response.end()所以我可以测试是否response.write在之前输出response.end。以我的经验,虽然不是。

有没有一种方法可以在结束响应之前输出数据,例如以包形式发送数据?


阅读 208

收藏
2020-07-07

共1个答案

一尘不染

如果将内容类型更改为文本/纯文本,例如:

// Write Headers
response.writeHead(200, {'Content-Type': 'text/plain'});

然后firefox将立即显示内容。Chrome似乎仍在缓冲(如果您编写更多内容,Chrome会立即显示它)。

2020-07-07