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

时间:2017-01-27 07:06:35

标签: node.js

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中有什么好办法?

2 个答案:

答案 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承诺。