2016-12-16 67 views
0

我使用tcp-ping来ping一个服务器,然后我想做一个回调函数,将数据通过request库发布到我的数据库。我无法弄清楚如何让回调函数发送数据到第二个函数。如何将回调数据传递给Node.js中的第二个函数?

问题是没有错误,但Min,Max和Avg的表单数据没有在mongodb中记录。我不知道如何检索数据,或者知道数据是否被发送。

tcpp.ping({ address: 'www.google.com' }, function(err, data) { 

    postPingData(function(err, data){ 
     if(err){ 
     console.log(500, { error: 'something blew up' }); 
     } else { 
     console.log(data); // I understand this is incorrect, but I don't know how else I'm supposed to send data. 
     } 
    }); 

    console.log(data); 
}); 

var postPingData = function(callback){ 
    console.log(callback); 
    request.post({ 
     headers: {'content-type' : 'application/x-www-form-urlencoded'}, 
     url:  'http://localhost:8080/api/pingdata', 
     form: { 
        ping_id: "5852fd1976ba7111cd9b78aa", 
        min: callback.min, 
        max: callback.max, 
        avg: callback.avg 
       } 
    }, function(error, response, body){ 

    if (!error && response.statusCode == 200) { 
     status = "succeeded"; 
     callback(null, {status : status}); 
    } else { 
     callback(error); 
    } 
    }) 
}; 

回答

0

本质上讲,它似乎你想传递给回调到tcpp.ping数据参数注入 - 这将是ping操作,如果成功的结果 - 你postPingData功能:

tcpp.ping({ address: 'www.google.com' }, function(err, data) { 

    postPingData(data, function(err, data){ 

    ... 

var postPingData = function(data, callback){ 

    ... 

    form: { 
      ping_id: "5852fd1976ba7111cd9b78aa", 
      min: data.min, 
      max: data.max, 
      avg: data.avg 
      } 
相关问题