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 之类的事情在同一个包中访问)。

【讨论】:

所以意味着我可以将expressnext 组合为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

VS Express 没有正确编译代码(?)[关闭]

如何为 VS Express 版本编写 SourceControl 插件 [关闭]

Router.push 没有重定向我; Nextjs 与 Express 服务器