NodeJS 流响应

问题描述 投票:0回答:0

背景:我的 API 正在连接到我无法控制的另一台服务器上的流端点(这里的细节不是很重要)。当流进来时,我将流式块代理到浏览器。浏览器通过

Fetch
+ 异步迭代器访问我的 API

问题:我正在代理的流端点不能保证保持成功连接或没有错误(它可能超时,下游调用可能失败等)

问题:向前端发出中流发生错误信号的最佳方式是什么。我想在关闭连接之前在最后一个块中发送一个序列化错误作为 JSON,但我发现这个解决方案有点老套,想知道是否有更好的方法来做到这一点。最好是遵循标准惯例的东西。

我不是特别喜欢的可能方法的例子:

let myStreamResponse: AxiosResponse<NodeJS.ReadableStream>; let myStream: NodeJS.ReadableStream; try { myStreamResponse = await streamingClient.streamSomeStuff(payload); myStream = chatStreamResponse.data; } catch (error) { return res.status(500).send('It isnt working man'); } myStream.on('error', (error) => { const streamError = new MyStreamError('Something broke'); errorTransport.error(streamError); res.write(serializeError(streamError))); return res.end(); }); // Etc, etc.
    
node.js error-handling streaming fetch-api http2
© www.soinside.com 2019 - 2024. All rights reserved.