Ответ API - это объект.Но .map
- это функция для массивов, поэтому вы получаете сообщение об ошибке response.data.map
- не функция.
Ниже приведен вариант для вас.
Если вы используете ES5,
Object.keys(response.data).forEach(function(key) {
console.log(key, response.data[key]);
});
, используя ES6, вы можете использовать for
loop
for (const key of Object.keys(response.data)) {
console.log(key, response.data[key]);
}
в обоих случаях key
будет ключом объекта (в вашем случае - именами), а response.data[key]
даст вам данные для этого ключа.
Также обратите внимание, что, поскольку выинтересуют только значения, а не ключи, вы можете просто использовать
Object.values(response.data)
Ваш окончательный код будет выглядеть как
router.get("/", (req, res, next)=>{
axios.get("http://ddragon.leagueoflegends.com/cdn/6.24.1/data/en_US/champion.json")
.then( (response)=>{
res.render("champions", {
champs: Object.values(response.data)
});
})
.catch((err)=>{
console.log(err);
});
});