我正在使用async / await(http://stackabuse.com/node-js-async-await-in-es7/并使用bable进行转换)和请求(https://github.com/request/request)在节点中编写服务器。我正在尝试向外部api发出post请求并访问http响应头。我只能弄清楚如何访问我发送的请求。我如何获得HttpResponse?
这是代码
var options = {
url: externalUrl,
form: body
};
try {
var httpResponse = await request.post(options);
console.log(httpResponse.headers.location);
return "post request succeeded!";
} catch (err) {
return done(err, null);
}
答案 0 :(得分:1)
看起来request
是通过回调实现的。 ES7 async / await仅适用于Promises。您可以使用bluebird之类的库来宣传request
中的所有方法。 Async / await应该可以在之后使用。
答案 1 :(得分:0)
如果您使用的是“请求”,则不需要异步。
您可以轻松完成此操作:
request({
headers: {
'Content-Type': 'application/json',
},
uri: url,
body: JSON.stringify(options),
method: 'POST'
}, function (err, res, body) {
var obj = JSON.parse(body);
if(err){
console.log("Ooops: " + err);
}else{
console.log(res.headers['content-type']);
//Do some stuff with the server response;
}
});