2022 年最受欢迎的 Node 框架

战场小包 编程语言 11天前 阅读 1106

前言

Node.js 是最受欢迎的 JavaScript 运行时,但近几年中,Node.js 框架的格局发生了翻天覆地的变化。为了迎合后端和全栈开发人员的使用,越来越多的框架被构建为混合(元)解决方案

在本文中,将与大家一起来探讨 Node 的当前趋势,并总结最流行的 Node.js 框架。

Node.js 趋势

当下很多 Node.js 框架是基于前端框架的,这也被称为元框架。那么这样做的好处是什么呐?

当前流行的前端框架,以 React 来说,基于 CSR 客户端来进行页面渲染,一旦发出请求,浏览器就会获得一个没有实际页面内容的 HTML 文件,只有加载到包含页面内容的 JavaScript 文件后,才能呈现出实际页面。

用户与页面进行交互时,上述的过程反复发生,虽然 HTML 没有发生变化,但是不同的路由意味着浏览器必须根据 JavaScript 不断切换来呈现用户所需的内容。

CSR 的方法有一些明显的缺点:

  • Caching:通过 JavaScript 来渲染页面内容,页面中的 HTML 内容无法缓存
  • SEO: 爬虫无法高效的抓取纯 JavaScript 网站的具体内容
  • Rendering: 需要等待所有的 JavaScript 加载,因此首屏加载通常很慢。

元框架吸收了 CSR 的优点,例如 NextNuxt 框架,基于前端框架的基础,通过 Node.js 实现服务端渲染(SSR)

Next.js

Next.js 是目前最火爆的 Node 框架之一,得到了广大开发人员的喜爱。此外,Next 的版本更迭速度也非常快,Next.js 10Next.js 12 只用了一年时间。

Next.js 是基于 React 的框架,具备服务端渲染功能,由于渲染发生在服务端,因此它非常快速且对 SEO 保持友好。

使用 Next.js,你可以轻松创建强大的基于 React 的应用程序并对其进行测试,消除了构建后端的复杂程度,开箱即用,能有效提高应用程序的性能。

Nest.js

尽管 Node (和服务器端 JavaScript)拥有大量优秀的软件库、辅助程序和工具,但没有一个能够有效地解决我们所面对的主要问题,即 架构问题Nest.js 通过架构优先的方法解决了这个问题。(相对于后端而言)

Nest.js 的这种架构深受 Angular 的启发,提供了三个核心组件 ControllersProvidersModulesModule 组件是 Nest.js 解决复杂应用层次结构问题的方案。每个组件都可以分类在一个单独模块中,你可以在其中配置自己的控制器、依赖项和特定的提供程序。

Strapi

Headless 在当前的前端发展中风靡一时,Strapi 是一个基于 Headless-CMSNode.js 内容管理框架。

Strapi 是一个后端框架,基于其提供的 API 可以完成大部分后端工作,而无需在学习 Express 类框架。

其提供的 API 包括自定义 UIGraphQLREST 的动态端点、用户权限管理、配置单独插件页面来管理具体内容等。Strapi 几乎与框架无关,几乎可以与任何语言、框架或者前端库进行集成。

Remix

Remix 是一个由 React Router 开发团队所开发的基于 ReactNode 的全栈框架。Remix 是近年来增长最快的全栈框架,其为常见的 HTTP 状态码和用户交互提供了简洁编辑的 API

与传统的框架不同,Remix 数据在服务器端并行加载,然后返回 HTML 页面结构,也就是说即使用户禁用了 JavaScript 功能,网站功能也不会影响。

Nuxt

Nuxt 是构建在 Vue 之上的全栈框架(元框架),旨在改善 Vue 全栈开发的体验。Nust 支持 SSRSPA 和静态生成页面。

Nuxt.jsSSR 提供了开箱即用的全面支持,并帮你规避常见的陷阱。利用 SSR 模式,Node.js 服务器将基于 Vue 的组件渲染成 HTML 并传输到客户端,而不是纯 Javascript。与传统的 Vue SPA 相比,使用 SSR 将带来巨大的 SEO 提升、更好的用户体验和更多的机会。

Nuxt 不提供持久的客户端通道,因此 Nuxt 渲染页面后 DOM 交互会比较复杂。

SvelteKit

SvelteKit 是基于 Svelte 构建应用的全栈框架,包括服务器端渲染(SSR)、路由、针对 JSCSS 的代码分割,以及针对不同 Serverless 平台生成不同代码的适配器等等。

SvelteKit 框架的主要目标在于消除一些常见的开发瓶颈来加速 Web 应用开发。通过 SnowpackVite 和其他外部工具—— SvelteKit 能够提供功能强大的开发体验。

此外,SvelteKit 还实现了 Hydration 功能,这样经过服务器端渲染的 DOM 元素的仍可以比较简单的进行交互。

Fastify

Fastify 是专为 Node.js 平台量身打造的快速并且低开销的 Web 框架,其设计灵感来自 HapiExpress,致力于以最少的开销和强大的插件结构提供最佳的开发体验。毫不夸张地说,它是这个领域里速度最快的 Web 框架之一。

Fastify 开发大多基于插件模式,官方提供了一个公共存储库,用来存放社区和 Fastify 团队编写的插件。插件模式开发架构干净简单,并且无需替代框架,这使得 Fastify 构建强大实时性能的低开销 API 特别有优势。

Redwood

RedwoodJS 是集成 GraphQLPrismaStorybookJest 等大量现代技术的全栈 Web 应用程序框架,基于 React 进行构建,对 TypeScript 支持友好。

Express

Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。虽然近几年,Express 的热度有所降低,但它仍然受到很多开发者的喜爱。

对于使用 Express 多年的技术团队来说,切换到其他框架并没有任何意义。此外,许多框架是基于 Express 构建的。

Adonis

Adonis 是一个 Node.js Web 框架,专注于易用性与速度。它同样是一个全栈 Web 框架,解决了许多 Web 开发难题,同时提供了用于构建 Web 应用和微服务,或者用于 TDD(测试驱动开发)的简便 API

此外,AdonisTypeScript 的原生支持非常友好,同时支持 ORM 以及提供了易于理解的文档。

Keystone

KeystoneExpress 框架一样,具有悠久的历史,多个版本的迭代,使得 Keystone 成为非常成熟的框架,它能为开发人员提供丰富的工具和多种集成功能。

利用 Keystone,你可以通过 GraphQL API 实现的自动化 CRUD,也可以创建和实现自己的 React.js 组件。

Keystone 可用于各种开发领域,例如移动应用程序、实用网站、电子商务等。

1