如何使用Express(nodejs)将HTTP GET响应保存到var?

时间:2019-02-14 09:52:22

标签: node.js http express get

我正在Nodejs中使用Express以便进行GET调用。作为响应,我得到了我需要的值,但是当我从函数返回值到主函数时,我得到的是不确定的。

function getInfo() 
{

      var oauth = getoAuth();

      request.get({
        url:'myurl',   
        oauth:oauth, 
        qs:null, 
        json:true
      }, 
          function (e, r, data) {
            body.data = data;
            body.emit('update');
      }); 


      body.on('update', function () {
        console.log(body.data.issues[0].key);
        return (body.data.issues[0].key);  
      });

}

这是我需要的钥匙。当我在控制台中打印它时,我得到了正确的值,但是它不返回任何内容,因为它是一个异步调用。如何返回值?我可以以某种方式等待快递的价值吗?我在stackoverflow上看到有人使用了此body.on('update'...解决方案,但对我而言不起作用。它仍然不保存任何变量。

EDIT->响应:

TESTING: undefined
THEKEY1

将值保存在:

  

var myid = geInfo();

1 个答案:

答案 0 :(得分:1)

尝试这种方式:

function getInfo() 
{

      var oauth = getoAuth();

      request.get({ url:'myurl',  oauth:oauth,  qs:null, json:true},
        function (error, response, body) {
            if(!error && response && response.statusCode==200){
               console.log(body);
               return body.data.issues[0].key;  
            }else{
               return null;
            }
      }); 
}