译者:陈健
Node.js有许多架构能优先选择,包括新贵的express,koa,名星的egg,nest之类
具体来说能透过两个表单上看呵呵各架构的畅销某种程度:
1.Express
Express是这款如前所述node.js和ChromeV8发动机,加速、Becoming的JS服务器端合作开发架构,它提供更多了用以合作开发强健的web/终端应用领域,和API的所有机能。因此合作开发者还能方便快捷heard它合作开发应用领域程序和扩充,进而增加Express的能力。上面列举了许多Express提供更多的基本的机能:
–能和任何人的服务器端资料库进行通信
–能采用任何人的使用者证书方式
–能采用任何人合乎Expressapproaches的模版发动机
–能依照需要表述工程建设产品目录
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能在创建适配器后采用任何人NodeHTTP架构。Nest提供更多了两个开箱即用的应用领域程序架构,容许合作开发者和团队创建高度可测试,可扩充,松散耦合且易于维护的应用领域程序。
4.Sails
Sails作为两个十分稳固的nodejs架构,提供更多了建立任何人规模的web应用领域所需要的所有机能机能。
Sails.js在底层采用了express架构来提供更多对http请求的处置,同时采用Socket.IO架构来处置WebSocket请求。同时作为两个前端应用领域合作开发架构,它容许合作开发者优先选择他/她熟悉的技术来合作开发应用领域。
同时Sails.js也通过waterline架构同时实现了ORM机能。透过这个机能,你的应用领域程序能在不进行大的修改的前提下,就能从两个后端资料库,切换到另外两个后端资料库(也能是两个NoSQL资料库)。
Sails特别适合用来合作开发对数据的实时更新有较高要求的应用领域,比如多人棋类游戏,单页web应用领域之类。如果你对Ruby,Django或者Zend有一定的了解,那么你将十分容易理解Sail中的概念。
5.Egg
Egg是如前所述koa,由阿里nodejs团队封装的企业级Web应用领域解决方案,以约束和规范化团队合作开发,帮助合作开发团队和合作开发者降低合作开发和维护成本为核心理念设计理念的优秀解决方案。它有如下特点:
–提供更多如前所述Egg定制上层架构的潜能
–高度可扩充的应用领域程序机制
–内建多进程管理
–如前所述Koa合作开发,性能优异
–架构稳定,测试覆盖率高
–渐进合作开发
Egg已经被用在阿里多条产品线(包括蚂蚁)上,已经证明它的安全和可靠性,能放心用。
6.Loopback
LoopBack合作开发架构是一套Node.js模块集,能用独立采用或整合采用以加速合作开发RESTAPI接口程序。背后是IBM的子公司在全力支持。
LoopBack应用领域能透过模型API来跟数据交互,本地通信在Node.js内部完成,远程通信采用REST客户端API,如与原生客户端iOS、Anroid和Html5等进行通信。
7.Fastify
Fastify是两个高度专注于以最少开销和强大的应用领域程序架构,采用简单,扩充灵活,包含了如前所述扩充的合作开发方式,同时官方为了方便快捷合作开发plugin,提取了通用部分,方便快捷模组化,同时我们能在路由中添加schema方便快捷的进行数据的校验(如前所述jsonschema),生态也很不错,已经提供更多了很多扩充应用领域程序。
8.Hapi
HapiJS是两个开源的、如前所述Node.js的应用领域架构,它适用作构筑应用领域程序和服务,其设计目标是让合作开发者把精力集中于合作开发可重用的应用领域程序的业务逻辑,向合作开发者提供更多构建应用领域程序业务逻辑所需的基础设施。
9.Pomelo
pomelo是两个游戏服务器架构,与以往单进程的游戏架构不同,它是高性能、高可伸缩、分布式多进程的游戏服务器架构,因此采用很简单。它包括基础合作开发架构和melo也能作为通用的分布式实时应用领域合作开发架构,用作许多高实时应用领域的合作开发,而且pomelo在很多方面的表现甚至超越了现有的开源实时应用领域架构。pomelo全力支持所有主流平台的客户端,并提供更多了客户端的合作开发库,使得客户端的合作开发变得很友好。