NODE JS API RIOT для друзей ранга списка - PullRequest
0 голосов
/ 08 января 2020

Доброе утро всем,

Я молодой разработчик, и мне действительно нравится nodejs, я стараюсь учиться сам, создавая небольшие персональные приложения. Поэтому я создал приложение, которое использует RIOT API, чтобы отображать никнейм, лигу с ее очками, очки, выигранные или проигранные. Это работает очень хорошо для одного человека, но когда я решаю заставить это работать для нескольких человек, это застревает. На net мы говорим об асинхронности, но, будучи новичком, я потерян, вот мой код, прежде всего спасибо за чтение, и заранее за помощь.

Ps: Извините за меня плохо engli sh: D

var https = require('https');
var http = require('http');


const EU = 'https://euw1.api.riotgames.com/lol/league/v4/entries/by-summoner/';
    const NA1 = 'https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/';
    const URLKEY = '?api_key=';
    const Thomas = 'ZHd2VXBU5vuGumSIty1WXq5OqWu0XpAfXG8TyjIgDSwAGlU';
    const John = 'DkcxPRTDj1WDUMiOn_RN16AtGqNvKKig6SItWxoc3FhmIfQ';
    const MaximeG = 'LzIGCODKziH7E4QvOJ0cFHL2MJ3B00pukIShOH8qYemKlXs';

var server = http.createServer(function(req, res){
    let data = '';
    const key = '';

    // Doesn't work when you put multiple players :(
    const PLAYERID= [Thomas,John]; 

    PLAYERID.forEach(id => {
        console.log('Here the different id');
        console.log(id);
        console.log('continuation');

    https.get(EU + id + URLKEY + key,
    (rr)=>{
        rr.on('data', (chunk) => {
            console.log(chunk.toString());
            data += chunk;
});
        rr.on('end', () => { 
            let result = JSON.parse(data);
            console.log('result before json');
            console.log(result);
            console.log('result after parse');
            console.log(data);

            let output = [''];
            for(let i=0;i<result.length;i++){
                output += "Name : "+result[i].summonerName+ " League : "+result[i].queueType+"\n\tRank : "+result[i].tier+" "+result[i].rank+" "+result[i].leaguePoints+" LP Nombre de victoires : "+result[i].wins+" Nombre de defaites : "+result[i].losses+" \n";
        console.log(output);
            }
            res.end(output);
        });
    });
});
}).listen(8080);

1 Ответ

0 голосов
/ 08 января 2020

Попробуйте это

Замените const key своим ключом


var https = require('https');
var http = require('http');


const EU = 'https://euw1.api.riotgames.com/lol/league/v4/entries/by-summoner/';
const NA1 = 'https://na1.api.riotgames.com/lol/league/v4/entries/by-summoner/';
const URLKEY = '?api_key=';
const Thomas = 'ZHd2VXBU5vuGumSIty1WXq5OqWu0XpAfXG8TyjIgDSwAGlU';
const John = 'DkcxPRTDj1WDUMiOn_RN16AtGqNvKKig6SItWxoc3FhmIfQ';
const MaximeG = 'LzIGCODKziH7E4QvOJ0cFHL2MJ3B00pukIShOH8qYemKlXs';


const key = 'RGAPI-f5c263a7-1137-4c1c-b9a7-4cdef0738fcd';

// Doesn't work when you put multiple players :(
const PLAYERID = [Thomas, John];
PLAYERID.forEach(id => {
    console.log('Here the different id');
    console.log(id);
    console.log('continuation');
    const responses = []
    https.get(EU + id + URLKEY + key, (rr) => {
        rr.on('data', (chunk) => {
            responses.push(JSON.parse(chunk));
        });
        rr.on('end', () => {
            let output = ['']
            responses.forEach((item) => {
                for (let i = 0; i < item.length; i++) {
                    output += "Name : " + item[i].summonerName + " League : " + item[i].queueType + "\n\tRank : " + item[i].tier + " " + item[i].rank + " " + item[i].leaguePoints + " LP Nombre de victoires : " + item[i].wins + " Nombre de defaites : " + item[i].losses + " \n";
                    console.log(output);
                }
            })


        });
    });
});

var server = http.createServer(function (req, res) {

}).listen(8080);

...