我有一个 request.post 调用和另一个函数。我需要将restcall 的响应作为参数传递给函数。
我在这里面临的当前问题是,甚至在我收到其余调用的响应并且传递空值之前,该函数就被调用了。我知道我们需要使用一些回调来解决这个问题。但我不知道该怎么做。有人可以帮忙吗。
app.post('/verifycreds',function(req,res) {
var reqdata = req.body;
var data = {};
data.custid = reqdata.custid;
request.post({
url:'https://database.mybluemix.net/verifycredentials',
headers:{
'Content-Type':'application/json'
},
body:data,
json:true
}, function(err,response) {
verifycreds(response.body);
});
function verifycreds(data) {
if((datareq.customerid === data.customerid ) && (datareq.password == data.password)){
res.send("valid");
} else {
res.send("invalid");
}
}
那么,只有在收到请求.post调用的响应后,我如何才能调用verifycreds函数。任何帮助!
最佳答案
你的回调是有效的,问题出在回调参数上。它应该用三个参数定义:
- 错误
- 回复
- 正文
所以正确的代码是:
request.post({
url: 'https://database.mybluemix.net/verifycredentials',
headers: {
'Content-Type': 'application/json'
},
body: data,
json: true
}, function(err, res, body) {
// TODO: process possible errors
// if (err) { ...
verifycreds(body);
});
关于javascript - 如何仅在从restcall Node js获得响应后调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45391866/