以下是一些关于API 路由你需要了解的重要信息。
getStaticProps
或 getStaticPaths
中获取 API 路由你**不应该**从getStaticProps
或getStaticPaths
中获取 API 路由。相反,请直接在getStaticProps
或getStaticPaths
中编写你的服务器端代码(或调用辅助函数)。
原因如下:getStaticProps
和getStaticPaths
仅在服务器端运行,永远不会在客户端运行。此外,这些函数不会包含在浏览器的 JS 包中。这意味着你可以编写诸如直接数据库查询之类的代码,而无需将其发送到浏览器。阅读编写服务器端代码文档以了解更多信息。
API 路由的一个好的用例是处理表单输入。例如,你可以在页面上创建一个表单,并让它向你的 API 路由发送一个POST
请求。然后,你可以编写代码将其直接保存到你的数据库中。API 路由代码不会成为你的客户端包的一部分,因此你可以安全地编写服务器端代码。
export default function handler(req, res) {
const email = req.body.email;
// Then save email to your database, etc...
}
静态生成在你的页面从无头 CMS 获取数据时非常有用。但是,当你正在你的无头 CMS 上编写草稿并希望立即在你的页面上**预览**草稿时,它并不理想。你希望 Next.js 在**请求时**而不是构建时渲染这些页面,并获取草稿内容而不是已发布的内容。你希望 Next.js 仅在此特定情况下绕过静态生成。
Next.js 具有一个名为**预览模式**的功能来解决上述问题,它利用了API 路由。要了解更多信息,请查看我们的预览模式文档。
API 路由可以是动态的,就像常规页面一样。查看我们的动态 API 路由文档以了解更多信息。
在下一个也是最后一个基础课程中,我们将讨论如何将你的 Next.js 应用部署到生产环境。
快速回顾:以下哪一项是 API 路由的良好用例?