app.get(`/${sumName}`, async (req, res) => { const link = `https://na1.api.riotgames.com/lol/league/v4/challengerleagues/by-queue/RANKED_SOLO_5x5?api_key=${RiotKey}` const response = await fetch(link); let data = await response.json(); sumName = data.entries[0].summonerName res.send("Works") })El problema que tengo es que sumName no está definido (creo que esto se debe a que sumName solo está definido dentro del alcance de la función y no llega al argumento de la función)
Sin embargo, si trato de pasar sumName o algo de data.entries desde fuera de la función, devolverá un objeto Promesa en lugar de los datos. ¿Hay alguna manera de pasar estos datos desde el interior de la función? La creación de una nueva función asíncrona no funciona porque aún devolverá un objeto Promesa cuando se llame a app.get.
No necesita llamar a app.get para definir la ruta de inmediato; puede hacerlo después de que finalice la API.
fetch(`https://na1.api.riotgames.com/lol/league/v4/challengerleagues/by-queue/RANKED_SOLO_5x5?api_key=${RiotKey}`) .then(res => res.json()) .then((data) => { const sumName = data.entries[0].summonerName; app.get(`/${sumName}`, (req, res) => { res.send("Works"); }); }) // .catch(handleErrors); // don't forget this