2017-01-27 137 views
1

node.js:6.9.4如何在node.js中获取http响应?

我写了类似下面的代码,但它不工作,我想要的。

var request = require(‘superagent’); 
var url = “https://XXX” 

    var login_id=“YYY” 
var password=“ZZZ” 

function get_token(url,login_id,password){ 
    request 
    .post(login_url) 
    .set(‘X-XXX-HEADER, ‘xxx’) 
.set(‘X-yyy-HEADER, ‘yyy’) 
.type('form') 
    .send({login_id: login_id, password: password}) 
    .end(function(err, res){ 
     console.log(res.text); // show response 
     return res.text; 
    }) 
} 

var auth = get_token(login_url, login_id, password); 
console.log(auth); // show undefined 

我想创建函数来返回响应数据,并像那样使用。

// define function get_token 

    res = get_token(login_url, login_id, password); 

// procedure that return token with parsing res 

function getXXX(otherurl, token) 

我该怎么办? 在node.js中有什么好方法?

回答

0

你应该使用回调

var request = require(‘superagent’); 
var url = “https://XXX” 

var login_id=“YYY” 
var password=“ZZZ” 

function get_token(url, login_id, password, callback){ 
    request 
     .post(login_url) 
     .set(‘X-XXX-HEADER, ‘xxx’) 
     .set(‘X-yyy-HEADER, ‘yyy’) 
     .type('form') 
     .send({login_id: login_id, password: password}) 
     .end(function(err, res){ 
      console.log(res.text); // show response 

      return callback(err, res); 
     }) 
} 


get_token(login_url, login_id, password, function (err, result) { 
    var auth = result.text; 
}); 
+0

谢谢,我尝试使用回调。 – rootpetit

0

变化get_token中以return request..和改变`get_token中(LOGIN_URL,LOGIN_ID,密码)。然后(的console.log);

您需要阅读并花时间学习有关JavaScript的承诺。

+0

谢谢。我会尝试阅读javascript承诺。 – rootpetit