我正在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为您完成),因此它应该具有某种内容。但是没有主体,没有数据,我无法读取。身体藏在哪里?
在 AWAIT 关键字是获得从HTTP请求的响应的最佳方式,避免回调和.then()
.then()
您还需要使用返回Promises的HTTP客户端。 http.get()仍会返回一个Request对象,因此将无法正常工作。您可以使用fetch,但它superagent是一个成熟的HTTP客户端,它具有更合理的默认值,包括更简单的查询字符串编码,正确使用mime类型,默认情况下为JSON和其他常见的HTTP客户端功能。await将等待,直到Promise具有值- 在这种情况下,将是HTTP响应!
http.get()
fetch
superagent
await
const superagent = require('superagent'); (async function(){ const response = await superagent.get('https://www.google.com') console.log(response.text) })();
使用wait,一旦返回的promise 具有值,控制 就简单地转到下一行superagent.get()。
superagent.get()