在哪里可以看到response.write()消息

时间:2015-07-17 18:31:50

标签: angularjs node.js express

我在Angular JS代码中使用了以下http请求

$http.get('http://my url/.../')
       .success(function(data, status, headers, config){
          console.log('response',data);
       })
       .error(function() {
          console.log('Error');
        });

在我的节点JS中,我正在使用

response.write(data);

我在哪里可以获得该数据值。因为我没有得到任何带有数据的控制台。 如果我使用

response.send(data);

然后我从我的JS文件中获取带有数据的控制台日志

3 个答案:

答案 0 :(得分:2)

两种情况下都会发送数据。只有send方法会关闭连接。

问题是success回调仅在请求完成时运行。 write方法将数据发送到客户端,但它不会完成请求。客户端仍在等待服务器说“好的,这就是整个消息;没有更多要发送。”在服务器执行此操作之前,success回调将不会运行

send方法(和end方法)关闭连接。连接关闭后,success方法将运行。

您似乎想要发送连续数据流(因为您不想结束连接),在这种情况下,您可以log XHR progress events。不幸的是,the $http interface does not currently expose progress events

答案 1 :(得分:1)

我假设您正在使用Express with Node。使用response.write,您只需编写响应而不发送它。然后,您必须致电response.end说:"此响应已准备就绪,然后发送。" response.send写入并发送响应。

response.send(data);

与:

相同
response.write(data);
response.end();

答案 2 :(得分:0)

应该只是:

response.end(data);

你必须结束它才能刷新回复。