如何在从restcall节点js获得响应后调用函数

时间:2017-07-29 17:04:55

标签: javascript node.js

我有一个request.post调用和另一个函数。我需要将restcall的响应作为参数传递给函数。

我在这里遇到的当前问题是,即使在我从其余调用得到响应之前函数也被调用,并且null值被传递。我知道我们需要使用一些callabcks来解决这个问题。但我不知道怎么做。有人帮忙。

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");
  }
}

那么只有在我收到请求的响应后才能调用verifycreds函数.post call..Any help!

1 个答案:

答案 0 :(得分:3)

您的回调有效,回调参数中存在问题。它应该用三个参数定义:

  • 错误
  • 响应

所以正确的代码是:

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);  
});