繁体   English   中英

如何将回调数据传递给Node.js中的第二个函数?

[英]How to pass a callback data to second function in Node.js?

我正在使用tcp-ping对服务器进行ping操作,然后我想创建一个回调函数,该函数将通过request库将数据发布到我的数据库中。 我在弄清楚如何获取将数据发送到第二个函数的回调时遇到麻烦。

问题在于没有错误,但是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);
    }
  })
};

从本质上讲,您似乎希望将传递给回调的数据参数注入到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
          }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM