Node.js调用Riot API时res.send返回空对象{}问题求助
问题原因
fetchSummonerByName 是异步函数,调用它默认返回的是 Promise 实例,而非你预期的接口返回数据。你直接把 Promise 传给 res.send 时,Express 序列化对象的逻辑会把没有可遍历自有属性的 Promise 实例转为空对象 {},这就是页面返回空括号的原因。
你在函数内部 console.log 能看到正确数据,是因为打印操作是在 await fetch 和 await response.json 执行完成后才触发的,此时已经拿到了最终的接口返回值,和外部调用没加 await 拿到的 Promise 不是同一个东西。
修复方案
把路由回调改成 async 函数,等异步请求执行完成拿到结果后再返回即可:
app.get("/xvma", async function(req, res) { const summonerData = await fetchSummonerByName("xvma") res.send(summonerData) })
内容的提问来源于stack exchange,提问作者xvma
相关产品推荐
相关产品推荐

