一尘不染

nodejs http.get响应中的主体在哪里?

node.js

我正在http://nodejs.org/docs/v0.4.0/api/http.html#http.request上阅读文档,但是由于某些原因,我似乎无法真正找到body
/ data属性在返回的完成响应对象上。

> var res = http.get({host:'www.somesite.com', path:'/'})

> res.finished
true

> res._hasBody
true

完成(http.get为您完成),因此它应该具有某种内容。但是没有主体,没有数据,我无法读取。身体藏在哪里?


阅读 273

收藏
2020-07-07

共1个答案

一尘不染

编辑:6年后回复自我

AWAIT 关键字是获得从HTTP请求的响应的最佳方式,避免回调和.then()

您还需要使用返回Promises的HTTP客户端。
http.get()仍会返回一个Request对象,因此将无法正常工作。您可以使用fetch,但它superagent是一个成熟的HTTP客户端,它具有更合理的默认值,包括更简单的查询字符串编码,正确使用mime类型,默认情况下为JSON和其他常见的HTTP客户端功能。await将等待,直到Promise具有值-
在这种情况下,将是HTTP响应!

const superagent = require('superagent');

(async function(){
  const response = await superagent.get('https://www.google.com')
  console.log(response.text)
})();

使用wait,一旦返回的promise 具有值,控制 就简单地转到下一行superagent.get()

2020-07-07