首页 > 解决方案 > Next.js 带或不带 express

问题描述

我最近开始将使用 create-react-app 制作的项目迁移到 next.js,但我不确定应该如何迁移它的后端。

我目前有一个快速服务器作为我的后端,但我在 next.js 中看到通过在api文件夹中使用无服务器函数可以带来性能优势。我的问题是:我最好将 express 服务器迁移到无服务器功能还是保留它并将其与 next.js 一起使用?另外,在无服务器函数中使用 express 是不是一个坏主意?

我看过很多关于 next.js 的教程,很多都使用 express,尽管 next.js 文档建议不要这样做,所以我不确定我是否在这里遗漏了一些优势。

[编辑]:我的后端基本上由用于获取/更新数据库内容和上传文件的路由以及 JWT 身份验证中间件组成。

标签: javascriptexpressnext.jsserverless

解决方案


我尽量避免使用 express.js。不仅是为了性能优势,还因为它需要多一层调试和维护。

但是,在某些情况下仍会迫使您依赖 express:

  1. 一些(尤其是较旧的)插件将依赖它。例如,直到最近,用于多语言支持的 next-18next 插件还需要 express.js 才能工作。这可能就是为什么一些教程和示例也会使用 express,如果他们使用这样的插件的话。幸运的是,在最近的一次更新中,next-i18next 团队设法删除了这个要求,您可以在不依赖 express 的情况下使用该插件。希望随着时间的推移,会有更多的插件效仿,尽管在教程、文档和示例赶上之前还有时间。
  2. 根据您的托管设置,您可能需要 express.js 来管理资产的缓存。如果您在专为托管 next.js 应用程序而构建的 Vercel 上进行托管,那么这将不是问题,因为您可以在该控制台中管理托管,我认为这也比拥有的想法更可取维护一个快递服务器。

总之,如果您在 Vercel 上托管或不需要担心资产缓存,并且不使用任何依赖 express.js 的插件,那么设置 express 是浪费精力。


推荐阅读