如何解决遍历获取请求后如何响应来自API的过滤数据?
我在Node.js中有一条获取路线。我正在从数据库访问数据并遍历该数据。我在该循环中有一个提取twitch API请求,该请求正在使用该数据中的属性。我必须以某种方式过滤数据,如果响应为null,则应忽略它;如果有任何数据,则应将其附加到数组中。然后最后,它应该返回已过滤数据的数组。但是问题在于,即使数据来自API,它也会返回空数组。我认为这是可变范围的问题,但我不知道该如何解决。 以下是我的代码:
router.get("/getstreams",async (req,res) => {
var arr = [];
await UserStreams.find().then(async (allStreams) => {
console.log(allStreams[0].user_id);
const a = allStreams.map(async (data) => {
return await fetch(`https://api.twitch.tv/kraken/streams/${data.user_id}`,{
headers: {
Accept: "application/vnd.twitchtv.v5+json","Client-ID": "yfzf3ux4gltxrcnentffrfvmlg7cwx",Authorization: "Bearer xbbxf3cbtuwz4i5gkekxjb338p28yr",},method: "GET",})
.then(async (res) => {
return await res.json();
})
.then(async (json) => {
return await (json !== null && arr.push(json));
});
});
console.log("array = ",arr);
console.log("array2 = ",a);
res.send(a);
});
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。