我是一個新手,我一直在嘗試使用 node js express 和 ejs 從 API 獲取資料。我的問題是我無法在我的頁面中顯示資料。看起來我呈現資料的方式有問題。當我 console.log 我的回復時,我可以訪問它但它似乎不想顯示你能幫我嗎。
我試影像這樣獲取資料:
const fetch = require('node-fetch');
exports.allCarte = async (req, res) => {
fetch('https://pokeapi-enoki.netlify.app/')
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
return response.json();
})
.then((response) => {
console.log(response)
res.render("../views/home",{
response
})
});
}
這是我在 home.ejs 中所做的:
<body>
<main>
<ul>
<% for(var i = 0; i < response.length; i ) {%>
<li><%=response[i].name %></li>
<% } %>
<h1>Hi, there!</h1>
</ul>
</main>
<
uj5u.com熱心網友回復:
如果您查看https://pokeapi-enoki.netlify.app/API 的結果,它的結構如下所示:
{
"pokemons": [
{
"id": 1,
"name": "germignon",
...
},
{
"id": 2,
"name": "kaiminus",
...
...這意味著感興趣的陣列response.pokemons不僅僅是response.
你的home.ejs應該像這樣改變:
<% for(var i = 0; i < response.pokemons.length; i ) {%>
<li><%=response.pokemons[i].name %></li>
<% } %>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534461.html
