跳到内容

40

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 应用程序部署到生产环境。

您已完成本章40

下一章

41:部署您的 Next.js 应用程序