【发布时间】:2018-12-11 22:00:42
【问题描述】:
这可能是一个重复的问题,但无法找到任何解决方案。我已经尝试在这个快速的时间搜索它,但我不走运。
我的问题是如何将json对象的流(如果流是正确的术语,则为idk)发送到客户端。
例如,我正在读取数据库上的数据,每找到 5 条记录,我就会以 json 格式将数据发送到客户端。然后使用 Angular httpclient lib 读取客户端上的数据。
我已经尝试过expressjs response.write(),但客户端无法接收数据,直到我调用response.end()。
这样做的正确方法是什么?
我在考虑 socket.io,但那太矫枉过正了。
编辑
其他例子
function getData(res: Response, req: Request):void {
for(let i = 0; i<100; i++{
res.write(JSON.stringify({data:1}) + '\n');
}
res.end(); // There is data received on the browser until this was called.
}
或者类似的东西。我原以为每 1 秒就会有一个数据到达,但它们在 10 秒后同时出现。
function getData(res, req){
const s = setInterval(()=>{
res.write(JSON.stringify({value: 'test value'}));
}, 1000);
setTimeout(()=>{
clearInterval(s);
res.end();
}, 10000);
}
【问题讨论】:
-
这可能会有所帮助 - stackoverflow.com/questions/18857693/…
-
@AnandUndavia 那里的解决方案,我认为这仍然归结为
res.end()
标签: json angular express stream response