我在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文件中获取带有数据的控制台日志
答案 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);
你必须结束它才能刷新回复。