使用node" request"从回调中获取数据图书馆

时间:2015-02-10 18:57:50

标签: node.js callback request

我正在努力研究如何从此代码示例中获取返回数据。如果我尝试从回调函数获取证书数据,它总是为空。我有什么东西在这里失踪吗?

 var Request = require('request');

     function callhttp(host) {

     var cert = " ";

     var options = {
         url: 'https://' + host
     };

     function callback(error, response, body) {
         if (!error && response.statusCode == 200) {
             var cert = response.connection.getPeerCertificate();
         }
     }
     Request(options, callback);
     return cert
 }
 console.log(callhttp("www.google.com"));

最诚挚的问候。

1 个答案:

答案 0 :(得分:2)

通过返回'cert',您将操作称为同步操作,而不是。

正确的模式是传递回调函数并处理数据白化:

 var Request = require('request');

 function callhttp(host, cb) {

     var cert = " ";

     var options = {
         url: 'https://' + host
     };

     function callback(error, response, body) {
         if (!error && response.statusCode == 200) {
             var cert = response.connection.getPeerCertificate();
             cb(cert);
         }
     }
     Request(options, callback);
}

callhttp("www.google.com", function(_cert) {
    console.log(_cert);
});