next.js:相当于getStaticProps()的API端点?



在next.js中,我们可以通过在构建时定义getStaticProps()来向平台传递一个提示,以便在构建时预渲染某些页面。

我们在pages/api/中实现了类似的API端点机制吗?

示例:我们有一个页面,静态呈现来自数据库或外部网站的帖子,我们希望API端点在同一时间返回完全相同的帖子状态,仅在JSON中。

我相信api路由没有这样的东西。

你可以做的是将你的帖子保存到磁盘上的一些文件或外部存储请求getStaticProps内的数据后,然后使用此文件作为数据源的api路由处理程序,类似的东西:

export const getStaticProps = async () => {
const posts = await getPosts();
saveSnapshot(posts);
return {
props: { /* ... */ }
}
}

API处理程序:

export default async function handler(req, res) {
const posts = await getPostsFromStorage();
res.status(200).json(posts)
}

需要注意的一点是,根据您如何服务您的应用程序,该文件可能不会在getStaticProps和api处理程序之间持久化。

例如,如果你使用常规的VPS,它将被持久化,因为你可能在相同的服务器和环境中构建和运行你的应用程序。

但是如果你使用一些无服务器的东西,那么你的api处理程序可能在不同的环境中运行,并且无法访问构建文件,那么你可能需要使用外部存储。

相关内容

  • 没有找到相关文章

最新更新