2017-01-27 171 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