【发布时间】:2019-05-31 02:21:22
【问题描述】:
我正在解析来自远程 API 的 JSON 数据。我正在使用的特定端点返回我想要的所有值,例如标题、描述、摘要和封面。我希望封面字段是一个带有 jpg url 的字符串,而是返回一个对象引用 id。如果您发出另一个请求并传递对象 ID,则 url 字符串就在那里。如何在不再次调用不同端点的情况下解析图像数据?我正在使用 IGDB API 并遵循他们的文档。 这是我的代码
const axios = require('axios');
axios({
url: "https://api-v3.igdb.com/games",
method: 'GET',
headers: {
'Accept': 'application/json',
'user-key': 'xxxx'
},
data: "fields name,summary,url,cover,popularity;sort popularity desc;limit 13;"
})
.then(response => {
/* GET home page. */
router.get('/', (req, res, next) => {
res.render('index', { pageId: 'index',
title: 'Homepage',
cards: homeCards
});
});
//Iterate through the JSON array
let r = response.data;
console.log(response.data);
for (i=0; i<r.length; ++i){
//Store json values
var title = r[i].name;
var description = r[i].summary;
var link = r[i].url;
var imageId = r[i].cover;
//Push values onto homeCards
homeCards.push({
title: title,
link: link,
description: description,
});
}
})
.catch(err => {
console.error(err);
});
我将封面 ID 存储在变量 imageId 中。如何使用它来显示每个游戏的相应对象引用?
【问题讨论】:
-
根据他们的 API 文档,这是不可能的。将始终需要对 Covers 端点进行第二次调用。
-
明白了,我该如何打这个电话?我会在我当前的函数中嵌套另一个 axios 函数吗?程序如何知道哪个图像属于哪个游戏?
-
我建议使用 async/await 而不是嵌套 promise。
标签: javascript node.js json api