gpt4 book ai didi

node.js - Node super 代理响应类型 ('blob' )与缓冲区(true)

转载 作者:行者123 更新时间:2023-12-02 21:30:06 25 4
gpt4 key购买 nike

由于 request 已弃用,我们目前正在使用 superagent 重写 Node 应用程序中的请求服务。到目前为止,一切看起来都很好,但是我们不太确定如何请求二进制数据/八位字节流并将实际响应正文作为缓冲区进行处理。根据docs (在客户端)应该使用

superAgentRequest.responseType('blob');

这似乎在 NodeJS 上工作得很好,但我也发现了这个 github issue他们在哪里使用

superAgentRequest.buffer(true);

效果也一样。所以我想知道在 NodeJS 中请求二进制数据的首选方法是什么?

最佳答案

根据 super 代理的source-code,使用 responseType() 方法在内部将 buffer 标志设置为 true,即与手动将其设置为 true 相同。

在处理二进制数据/八位字节流时​​,binary data parser使用,实际上只是一个 simple buffer :

module.exports = (res, fn) => {
const data = []; // Binary data needs binary storage

res.on('data', chunk => {
data.push(chunk);
});
res.on('end', () => {
fn(null, Buffer.concat(data));
});
};

在这两种情况下都使用这个解析器,这解释了行为。因此,您可以使用上述任何一种方法来处理二进制数据/八位字节流。

关于node.js - Node super 代理响应类型 ('blob' )与缓冲区(true),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61957725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com