node-superagent responseType('blob')vs. buffer(true)

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

由于不赞成使用request,我们目前正在使用超级代理在节点应用中重写请求服务。到目前为止,一切都还不错,但是我们不确定如何请求二进制数据/八位位组流以及如何将实际响应主体作为Buffer处理。根据docs(在客户端),应使用

superAgentRequest.responseType('blob');

这在NodeJS上似乎工作正常,但我还在他们使用的地方找到了这个github issue

superAgentRequest.buffer(true);

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

node.js superagent
1个回答
0
投票

根据文档https://visionmedia.github.io/superagent/

SuperAgent将为您解析已知的响应主体数据,目前支持application / x-www-form-urlencodedapplication / jsonmultipart / form-data。您还可以为其他响应主体数据设置自动解析:

您可以使用.buffer(true).parse(fn)方法设置自定义解析器(优先于内置解析器)。如果未启用响应缓冲(.buffer(false)),则将发出响应事件,而无需等待主体解析器完成,因此response.body将不可用。

所以要解析其他响应类型,您将需要设置.buffer(true).parse(fn)。但是,如果您不想解析响应,则无需设置buffer(true)

© www.soinside.com 2019 - 2024. All rights reserved.