Node.js 存储GET请求中的数据以便稍后在节点JS中使用

Node.js 存储GET请求中的数据以便稍后在节点JS中使用,node.js,get,Node.js,Get,假设我们有一个执行GET请求的函数 var http = require("http"); var http = require('https'); function summonerstats(region,name,param){ var options = { host: region+'1.api.riotgames.com', path: '/lol/summoner/v3/summoners/by-name/'+name+'?api_key=RGAPI-05ccfd5

假设我们有一个执行GET请求的函数

var http = require("http");
var http = require('https');
function summonerstats(region,name,param){
var options = {
    host: region+'1.api.riotgames.com',
    path: '/lol/summoner/v3/summoners/by-name/'+name+'?api_key=RGAPI-05ccfd5f-24d8-44ea-98b2-4dc00dd075b1'
};

var req = http.get(options, function(res) {

var bodyChunks = [];
res.on('data', function(chunk) {
    bodyChunks.push(chunk);
}).on('end', function() {
    var body = Buffer.concat(bodyChunks);
    var data=JSON.parse(body);
    if (param!=null){
        data=data[param];
    } 
    return(data);
})
});

req.on('error', function(e) {
    console.log('ERROR: ' + e.message);
});
}
summonerstats("euw","CD%20REBI"); 
console.log(data);

为什么不定义数据?知道它是在函数中定义的,如果我们在console.log中定义它,它将返回一个值

http
,这是一个异步操作。因此,当您执行
console.log(data)
时,它不会具有
GET
调用所需的值

为了在其他地方使用结果,您应该将http调用包装为承诺调用。然后使用调用的解析值

可以找到更多的阅读资料