跳至内容

API 路由

API 路由详情

以下是一些关于API 路由你需要了解的重要信息。

不要从 getStaticPropsgetStaticPaths 中获取 API 路由

你**不应该**从getStaticPropsgetStaticPaths中获取 API 路由。相反,请直接在getStaticPropsgetStaticPaths中编写你的服务器端代码(或调用辅助函数)。

原因如下:getStaticPropsgetStaticPaths仅在服务器端运行,永远不会在客户端运行。此外,这些函数不会包含在浏览器的 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 路由可以是动态的,就像常规页面一样。查看我们的动态 API 路由文档以了解更多信息。

就是这样!

在下一个也是最后一个基础课程中,我们将讨论如何将你的 Next.js 应用部署到生产环境。

快速回顾:以下哪一项是 API 路由的良好用例?