2016-04-29 57 views
0

我正在研究节点的request模块,并且文档说回调接受三个参数 - errorresponsehttp.IncomingMessage)和bodyNodeJS请求模块 - http.Inocoming消息的正文?

在提出请求时,我发现该物体也可以作为属性在response对象上。
这是真的吗?我可以忽略回调中的最后一个参数并使用response.body代替吗?

+0

是的,它为什么不试试看看会发生什么? – JordanHendrix

+0

我只是很好奇为什么文档不提供这些信息。他们可以保证我收到每种类型的请求的机构吗?或者如果只是巧合? – Kai

+0

够公平的,它真的只是一个方便的方法,所以我们不必做response.body,request会返回一个body,用于返回一个body的每个请求...... body也可能是一个错误,响应是只是一个从api返回的对象,请求只是简单的做到这一点 – JordanHendrix

回答

2

response.body并不总是与body相同。如果对响应请求任何处理(例如解压缩),则参数body将是该处理的结果,但是response.body可能不会反映该处理。您应该使用response参数。以下是文档中的一个示例:

为了向后兼容, 默认不支持响应压缩。要接受gzip压缩的响应,请将gzip选项设置为 true。请注意,通过请求传递的主体数据自动解压缩 ,而响应对象未经修改,并且如果服务器发送了压缩响应,将包含 压缩数据。