译者:陈健
Node.js有许多架构能选择,包括新贵的Express,Koa,名星的Egg,Nest之类。
具体来说能透过两个表单来看一下各架构的畅销程度:
1. Express
Express 是这款基于Node.js和Chrome V8发动机,加速、Becoming的JS服务器端合作开发架构,它提供更多了用以合作开发强健的 Web/终端应用领域,和 API 的所有机能。并且合作开发者还能够方便快捷heard它合作开发应用领域程序和扩充,从而增加 Express 的能力。上面列举了许多 Express 提供更多的基本的机能:
能和任何人的服务器端资料库进行通信能采用任何人的使用者证书方式能采用任何人合乎 Express approaches的模版发动机能依照需要表述工程产品目录2.Koa
Koa架构由Express原班打造出,它的核心理念是 ES6 的 Generator。Koa 采用 Generator 来同时实现开发工具的业务流程控制,采用try/catch 来进一步增强极度处置,同时在 Koa 架构中你非但看不出繁杂的 callback 反弹了。Koa架构这类十分小,只装箱了许多必要性的机能,但是它这类透过较好的模组化组织,让合作开发者能依照自己的设想来同时实现两个扩充性十分好的应用领域。
3.Nest
Nest 是两个用作构筑高效率,可扩充的 Node.js 服务器端应用领域程序的架构。它采用渐进 JavaScript,内建并完全支持 TypeScript(但仍然容许合作开发者采用纯 JavaScript 撰写标识符)并紧密结合了 OOP(面向对象程式设计),FP(表达式式程式设计)和 FRP(表达式式积极响应程式设计)的原素。
Nest 架构下层 HTTP 网络平台预设是如前所述 Express 同时实现的,所以无须害怕第三方库的缺位。 Nest 意在成为两个与网络平台毫无关系的架构。 透过网络平台,能建立可宠信的方法论组件,合作开发者能利用这些组件来跨越多种不同类型的应用领域程序。 从技术上讲,Nest 能在建立适配器后采用任何人 Node HTTP 架构。 Nest 提供更多了两个开箱即用的应用领域程序架构,容许合作开发者和团队建立高度可测试,可扩充,松散耦合且易于维护的应用领域程序。
4.Sails
Sails 作为两个十分稳固的 Node.js 架构,提供更多了建立任何人规模的 Web 应用领域所需要的所有机能。
Sails.js 在下层采用了 Express架构来提供更多对 HTTP 请求的处置,同时采用 Socket.IO 架构来处置WebSocket 请求。同时作为两个前端应用领域合作开发架构,它容许合作开发者选择他/她熟悉的技术来合作开发应用领域。
同时 Sails.js 也透过 waterline 架构同时实现了 ORM 机能。透过这个机能,你的应用领域程序能在不进行大的修改的前提下,就能从两个后端资料库,切换到另外两个后端资料库(也能是两个NoSQL资料库)。
Sails 特别适合用以合作开发对数据的实时更新有较高要求的应用领域,比如多人棋类游戏,单页Web应用领域之类。如果你对 Ruby, Django 或者 Zend 有一定的了解,那么你将十分容易理解Sail中的概念。
5.Egg
Egg是如前所述Koa,由阿里Node.js团队封装的企业级Web应用领域解决方案,以约束和规范化团队合作开发,帮助合作开发团队和合作开发者降低合作开发和维护成本为核心理念设计理念的优秀解决方案。它有如下特点:
提供更多如前所述 Egg 定制上层架构的能力高度可扩充的应用领域程序机制内建多进程管理如前所述 Koa 合作开发,性能优异框架稳定,测试覆盖率高渐进合作开发Egg已经被用在阿里多条产品线(包括蚂蚁)上,已经证明它的安全和可靠性,能放心用。
6.Loopback
LoopBack合作开发架构是一套Node.js模块集,能用独立采用或整合采用以加速合作开发REST API接口程序。背后是IBM的子公司在支持。
LoopBack应用领域能透过模型API来跟数据交互,本地通信在Node.js内部完成,远程通信采用REST客户端API,如与原生客户端iOS、Anroid和Html5等进行通信。
7.Fastify
Fastify是两个高度专注于以最少开销和强大的应用领域程序架构,采用简单,扩充灵活,包含了如前所述扩充的合作开发方式, 同时官方为了方便快捷合作开发plugin,提取了通用部分,方便快捷模组化,同时我们能在路由中添加schema 方便快捷的进行数据的校验(如前所述json schema),生态也很不错,已经提供更多了很多扩充应用领域程序。
8.Hapi
HapiJS是两个开源的、如前所述Node.js的应用领域架构,它适用作构筑应用领域程序和服务,其设计目标是让合作开发者把精力集中于合作开发可宠信的应用领域程序的业务方法论,向合作开发者提供更多构筑应用领域程序业务方法论所需的基础设施。
9.Pomelo
pomelo是两个游戏服务器架构,与以往单进程的游戏架构不同, 它是高性能、高可伸缩、分布式多进程的游戏服务器架构,并且采用很简单。它包括基础合作开发架构和一系列相关工具和库,能帮助合作开发者省去游戏合作开发中枯燥的重复实时应用领域的合作开发,而且Pomelo在很多方面的表现甚至超越了现有的开源实时应用领域架构。Pomelo支持所有主流网络平台的客户端,并提供更多了客户端的合作开发库,使得客户端的合作开发变得很友好。