如何在node.js中获取http响应?
问题描述:
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中有什么好方法?
答
你应该使用回调
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;
});
答
变化get_token中以return request..
和改变`get_token中(LOGIN_URL,LOGIN_ID,密码)。然后(的console.log);
您需要阅读并花时间学习有关JavaScript的承诺。
+0
谢谢。我会尝试阅读javascript承诺。 – rootpetit
谢谢,我尝试使用回调。 – rootpetit