如何在Node.js中设置变量值以获取请求的主体数据

时间:2019-02-27 08:34:37

标签: node.js

我是Node.js的新手。我想将body.xyz的值存储在变量A中,并希望像我在代码末尾那样从外部访问请求。这是我的代码,如何设置变量值。在程序结束时显示空值。

var request = require('request');

URL = "http://aaaa.com/api.php"


// Decleare the variables
var A = null;

PARAMS_0 = {
    'a':"query"
}

request.get( {
    url: URL, 
    qs: PARAMS_0
    },
    function(error, response, body) {
        body = JSON.parse( body)
        A = body.xyz 
    }
);
console.log( A )

2 个答案:

答案 0 :(得分:0)

显示为空是因为在request.get之后执行了console.log的回调,如果您在回调内添加console.log,则会看到结果。

安装https://github.com/request/request-promise

尝试这个:

var request = require('request-promise');

URL = "http://aaaa.com/api.php"

PARAMS_0 = {
    'a':"query"
}

(async () => {
const A = await request.get( {
    url: URL, 
    qs: PARAMS_0
    });
console.log( A );
})();

阅读本文:https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-promise-27fc71e77261

它完美地说明了承诺的概念,以及您应如何使用它们。

答案 1 :(得分:0)

如果未获得输出,只需尝试将Console.log语句放入回调中。 由于节点的异步行为,使得在另一条语句之后编写的一条语句可能被执行/首先产生输出(这是我认为您的情况正在发生的事情)的可能性。

希望有帮助。