0
我正在研究节点的request模块,并且文档说回调接受三个参数 - error
,response
(http.IncomingMessage
)和body
。NodeJS请求模块 - http.Inocoming消息的正文?
在提出请求时,我发现该物体也可以作为属性在response
对象上。
这是真的吗?我可以忽略回调中的最后一个参数并使用response.body
代替吗?
我正在研究节点的request模块,并且文档说回调接受三个参数 - error
,response
(http.IncomingMessage
)和body
。NodeJS请求模块 - http.Inocoming消息的正文?
在提出请求时,我发现该物体也可以作为属性在response
对象上。
这是真的吗?我可以忽略回调中的最后一个参数并使用response.body
代替吗?
response.body
并不总是与body
相同。如果对响应请求任何处理(例如解压缩),则参数body
将是该处理的结果,但是response.body
可能不会反映该处理。您应该使用response
参数。以下是文档中的一个示例:
为了向后兼容, 默认不支持响应压缩。要接受gzip压缩的响应,请将gzip选项设置为 true。请注意,通过请求传递的主体数据自动解压缩 ,而响应对象未经修改,并且如果服务器发送了压缩响应,将包含 压缩数据。
是的,它为什么不试试看看会发生什么? – JordanHendrix
我只是很好奇为什么文档不提供这些信息。他们可以保证我收到每种类型的请求的机构吗?或者如果只是巧合? – Kai
够公平的,它真的只是一个方便的方法,所以我们不必做response.body,request会返回一个body,用于返回一个body的每个请求...... body也可能是一个错误,响应是只是一个从api返回的对象,请求只是简单的做到这一点 – JordanHendrix