如何在 GET 请求中使用 fetch 并呈现这些结果?
How to use fetch inside GET request and render those result?
我在 Node 中使用 express router,我正在尝试使用从 API 获取的一些数据来呈现页面。但是,我完全没有得到任何结果,这不是 API 的错误。我手动检查了控制台,结果 returns 符合预期。
这是我的代码:
router.get('/dashboard', ensureAuth, async (req, res) => {
try {
const resp = await fetch("https://api.tvmaze.com/shows?page=1")
const respData = await resp.json()
res.render('dashboard', {
name: req.user.firstName,
image: req.user.image,
shows: respData
})
} catch (error) {
res.render('dashboard', {
name: req.user.firstName,
image: req.user.image
})
}
})
编辑: 这是正在呈现的视图:
<body>
{{#if shows}}
{{#each shows}}
<img src="{{image.original}}" alt="{{name}}" />
<div class="movie-info">
<h3>{{name}}</h3>
<span>{{weight}}</span>
</div>
{{/each}}
{{else}}
<p>No shows available.</p>
{{/if}}
</body>
我在网上搜索过,但找不到问题所在的解释。如果这是重复的,请将我重定向到原始文件。谢谢
您不能在节点内使用 fetch
,因为它只能在浏览器中使用。如果您想从节点应用程序发出 HTTP 请求,请使用 axios
或 node-fetch
我在 Node 中使用 express router,我正在尝试使用从 API 获取的一些数据来呈现页面。但是,我完全没有得到任何结果,这不是 API 的错误。我手动检查了控制台,结果 returns 符合预期。
这是我的代码:
router.get('/dashboard', ensureAuth, async (req, res) => {
try {
const resp = await fetch("https://api.tvmaze.com/shows?page=1")
const respData = await resp.json()
res.render('dashboard', {
name: req.user.firstName,
image: req.user.image,
shows: respData
})
} catch (error) {
res.render('dashboard', {
name: req.user.firstName,
image: req.user.image
})
}
})
编辑: 这是正在呈现的视图:
<body>
{{#if shows}}
{{#each shows}}
<img src="{{image.original}}" alt="{{name}}" />
<div class="movie-info">
<h3>{{name}}</h3>
<span>{{weight}}</span>
</div>
{{/each}}
{{else}}
<p>No shows available.</p>
{{/if}}
</body>
我在网上搜索过,但找不到问题所在的解释。如果这是重复的,请将我重定向到原始文件。谢谢
您不能在节点内使用 fetch
,因为它只能在浏览器中使用。如果您想从节点应用程序发出 HTTP 请求,请使用 axios
或 node-fetch