NextJS vs Express [关闭]
Posted
技术标签:
【中文标题】NextJS vs Express [关闭]【英文标题】:NextJS vs Express [closed] 【发布时间】:2021-12-23 09:01:54 【问题描述】:我对 nodeJS 后端开发还很陌生,在选择 NextJS 和 ExpressJS 来学习和使用我的下一个项目时感觉有点卡住了,我对 ExpressJS 有一些想法,比如构建 api,但不是非常清楚 NextJS,因为每次我用 Google 搜索 NextJS 与 ExpressJS 时,我都会得到“NextJS 与 React”相关的结果。
因此,如果有人可以帮助他们了解他们的身份、他们的区别等,我们将不胜感激
干杯
【问题讨论】:
【参考方案1】:Express 是在 Node.js 中构建 HTTP 服务器的通用工具。
Next.JS 是一个用于构建 HTTP 服务器的工具,专门用于执行 React 应用程序的服务器端渲染(并且它具有一些通用功能,因此您可以执行诸如为该 React 应用程序构建服务器端 API 之类的事情在同一个包中访问)。
【讨论】:
所以意味着我可以将express
与next
组合为s-s-r
。在任何express
满足但next
不满足的用例中?
@garg10may Express 是更底层的服务器(可以服务传统模板)。您可以将 Express 与 NextJS 一起使用,但如果您使用 NextJS,它们有自己的服务器,因此不建议这样做,除非您需要一些非常自定义的东西。见:***.com/a/59014214/380607
我看到人们通常只使用next
作为react
的包装s-s-r
和其他东西。他们在那里使用首选后端,例如 'django,
spring-boot` 等。【参考方案2】:
ExpressJS 与 NextJS:有什么区别?
关于每个框架的一点点:
1.) 什么是 Express.js?
ExpressJS: Express.js,或简称 Express,是 Node.js 的后端 Web 开发框架。它旨在用于开发 Web 应用程序和 API。它被称为 Node.js 的事实上的标准服务器框架。
This *** answer 更详细地解释了什么是 Express。
2.) 什么是 NextJS?
NextJS: Next.js 是用于生产的反应框架。
让我们揭穿这句话:
“框架”:它有很多内置功能(例如文件路由,取代了react-router-dom
),可以帮助您解决常见问题。
“For React”:NextJS 只是增强了您的 React 应用程序并为其添加了更多功能。
“用于生产”:对于几乎所有可用于生产的 React 应用程序,您都需要解决某些问题。 NextJS 为您解决这些问题。
Next.js 为您提供最佳的开发者体验,其中包含生产所需的所有功能:混合静态和服务器渲染、TypeScript 支持、智能捆绑、路由预取等。无需配置。
ExpressJS 与 NextJS 的功能
ExpressJS 的一些特性是:
稳健的路由 HTTP 帮助程序(重定向、缓存等) 支持14+模板引擎的查看系统Next.js 提供以下主要功能:
零设置。将文件系统用作 API(您不需要 Express 来构建全栈应用程序) 服务器端渲染 (s-s-r) 静态站点生成 (SSG) 单页应用程序 (SPA) 开发更快的应用程序 页面优化 SEO 网站 自动代码拆分结论
Express.js 是一个用于构建 API 的后端框架,而 Next.js 是一个基于 React 构建的全栈框架,可改善 SEO、开发体验和性能你的项目。其中一项功能是内置 API 路由系统,可以替代 Express.js。
这完全取决于您的情况和您的个人喜好。如果您正在构建一个不需要被搜索引擎找到的私有页面(只能通过身份验证访问的管理面板),则不需要 Next.js,而需要 Express.js。如果您正在构建一个公共网站(例如电子商务网站)并且您正在使用 Next.js 进行 SEO 优化,您可以将 Express.js 替换为它。
TLDR; 您可以将 Express API 替换为 NextJS 的 API 路由系统,但这仅在您构建全栈 React 项目时才有意义。如果它是一个独立的 API,那么使用 Next.js 来替换那个 API 没有任何意义。
【讨论】:
我正在寻找构建和反应应用程序和一个也可以在移动/桌面应用程序上使用的 API,这将是最适合这种情况的应用程序,我真的很喜欢使用 NestJS但我觉得它把我锁在只有反应的范围内?以上是关于NextJS vs Express [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 NextJS + Express 在本地主机上进行 HTTPS
Backbone.js vs Express vs Next JS ...和JSP? [关闭]
NextJS,Express,WebSocket 握手期间出错:意外响应代码:200