所以我从前端接收JSON对象并将其发送到我的后端到端点/ getData。在这里,我使用GET请求从API获取数据,我需要在最终的POST请求中发送JSON对象和GET响应体。但是当我发送请求时,GET响应的主体来得太晚了," formInfo"未定义。
如何解决此问题,以便在完成GET后POST请求发送?
app.post('/getData', function(req, res) {
debugger;
var data = req.body;
console.log(data);
toSend = data;
res.send({msg: "Success"});
var findID = {};
var endPoint = 'https://secure.p01.eloqua.com/API/REST/2.0/assets/form/' + toSend["formID"].toString();
var options = {
method: "GET",
headers: {'Authorization': authenticationHeader, 'Content-Type': 'application/json'}
};
request.get(endPoint, options, function (error, response, body) {
console.log(body);
findID = body["elements"];
request({
method: "POST",
headers: {'content-type': 'application/json', 'authorization': authenticationHeader},
url: 'http://localhost:3000/handleData',
json: {
"tuples": toSend,
"formInfo": body['elements']
}},
function (error, response, body) {
console.log(response);
});
});
});
答案 0 :(得分:0)
您是否考虑过使用fetch
API?
在现代浏览器中它是widely supported - 你可以将它描述为最坏的情况 - 和NodeJS。
有了它,您就可以链接请求,例如
fetch(`first.url.com`)
.then(response =>
fetch(`second.url.com`, {body: response.body})
)