node.js:6.9.4
我写了类似下面的代码,但它无法正常工作。
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 :(得分: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;
});
答案 1 :(得分:0)
将get_token更改为return request..
并更改`get_token(login_url,login_id,password).then(console.log);
您需要阅读并花时间学习JavaScript承诺。