node.js后端框架介绍_node.js后端框架及作用-程序员宅基地

技术标签: nodejs  Ai扑社  

作者:陈健
Node.js有许多框架可以选择,包括老牌的express,koa,新晋的egg,nest等等

首先可以通过一个表格来看一下各个框架的受欢迎程度:

在这里插入图片描述

1.Express

Express是一款基于node.js以及ChromeV8引擎,快速、极简的JS服务端开发框架,它提供了用来开发强壮的web/移动应用,以及API的所有功能。并且开发人员还能够方便地为它开发插件和扩展,从而增加Express的能力。下面列出了一些Express提供的基本的功能:

–可以和任何的第三方数据库进行通讯

–可以使用任何的用户认证方式

–可以使用任何符合Express接口定义的模板引擎

–可以按照需要定义工程目录

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是一个游戏服务器框架,与以往单进程的游戏框架不同,它是高性能、高可伸缩、分布式多进程的游戏服务器框架,并且使用很简单。它包括基础开发框架和一系列相关工具和库,可以帮助开发者省去游戏开发中枯燥的重复劳动和底层逻辑工作,免除开发者的重造轮子,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。pomelo强大的可伸缩性和灵活性使得pomelo也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发,而且pomelo在很多方面的表现甚至超越了现有的开源实时应用框架。pomelo支持所有主流平台的客户端,并提供了客户端的开发库,使得客户端的开发变得很友好。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_15603323/article/details/105630532

智能推荐

美团笔试题之查找幸运星_python代码求解美团幸运星个数-程序员宅基地

文章浏览阅读763次。美团笔试题之查找幸运星题目其实很简单,特别简单,当时看一眼题目我心中就有思路了,问题就是我卡在了如何循环输入上了,简直是不可思议,当时我想复杂了,现在看来如此简单的问题我卡了这么久,实在是不应该啊,写这篇博客的目的就是记录一下如何循环输入。题目:本地IDE中的解答,原来循环输入这么简单package cn.ycl;import java.util.Scanner;//美团笔试题第一题,找幸运星public class Main { public static void main(Stri_python代码求解美团幸运星个数

web前端开发基础课程学到了什么,成为Linux大神的学习之路-规划,前端开发编程-程序员宅基地

文章浏览阅读833次,点赞18次,收藏17次。那我们了解了学linux以后干些什么,我们就应该考虑如何学习Linux呢那么接着往下看我呢为大家准备了超多的学习视频Linux基础视频教程下面呢就是我为大家整理出来的基础视频课程。

Codeforces Gym F. Performance Review (树状数组 + DFS 序)_f performance review-程序员宅基地

文章浏览阅读415次。参考http://blog.csdn.net/DorMOUSENone/article/details/75125760这里写代码片_f performance review

JAVA 编写简易计算器_java书写计算器-程序员宅基地

文章浏览阅读549次。之前写的一些东西,身边的人都说没有用,让我写一些整合的例子,我第一个想到了之前做过的计算器,附带一些GUI的东西,大家帮我看看。import java.awt.BorderLayout;import java.awt.Container;import java.awt.Dimension;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;._java书写计算器

Java 谈谈你对面向对象的理解?_java谈谈你对面向对象的理解-程序员宅基地

文章浏览阅读3.6k次,点赞3次,收藏14次。Java 谈谈你对面向对象的理解?_java谈谈你对面向对象的理解

万字长文细说 Code Review 的正确姿势_大语言模型 code review-程序员宅基地

文章浏览阅读566次,点赞21次,收藏10次。作为公司代码委员会 golang 分会的理事,我 review 了很多代码,看了很多别人的 review 评论。发现不少同学 code review 与写出好代码的水平有待提高。在这里,想分享一下我的一些理念和思路。我这里先给一个我自己的总结:所谓架构师,就是掌握大量设计理念和原则、落地到各种语言及附带工具链(生态)下的实践方法、垂直行业模型理解,定制系统模型设计和工程实践规范细则。进而控制 30+万行代码项目的开发便利性、可维护性、可测试性、运营质量。

随便推点

R语言 list与data.frame转换(多层嵌套)_r list 转 dataframe-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏29次。背景:下载某数据库的数据做数据分析,发现下载的数据结构是多层list嵌套,与平时遇到的数据表(data.frame)不同,并且第二层list的名称是本人需要的变量。问题:如何将将第二层的list的名称嵌入到内层(第三层)的数据中,作为变量?一、什么是list列表列表是 R 语言的对象集合,可以用来保存不同类型的数据,可以是数字、字符串、向量、另一个列表等,当然还可以包含矩阵和函数,通常用list()函数创建列表。列表list最大优点:容纳多种类型的数据,可多层嵌套。..._r list 转 dataframe

stm32 + RN8209C单相计量芯片使用心得_rn8209c程序-程序员宅基地

文章浏览阅读2.2w次,点赞36次,收藏102次。RN8209C单相计量芯片使用心得由于项目需求,最近使用了一下RN8209C单相电量计量芯片,用STM32读取外接用电器的有效功率。第一次接触肯定是看技术手册。RN8209C技术手册V1.5单相计量芯片应用笔记手册中有电路设计方案,寄存器使用介绍。下面直接上干货,由于我负责编写驱动程序,所以电路设计就不说了,按官方给的方案就行。STM32 UART配置RN8209C只支持串口通信,..._rn8209c程序

python的import问题:绝对路径,相对路径,sys.path.append_sys.path.append 相对路径-程序员宅基地

文章浏览阅读3.7w次,点赞40次,收藏98次。python的import问题- 原理在Python中,一个.py文件就称之为一个模块(Module),包含.py文件的文件夹,且里面有一个__init_.py的文件夹称为包(Package),init.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,它的模块名就是包名。在python脚本被执行,python导入其他包或模块时,python会根据sys...._sys.path.append 相对路径

【无标题】路由器、交换机及其操作系统介绍-程序员宅基地

文章浏览阅读593次,点赞27次,收藏19次。首先,PCA 会对 IP 报文的目的地址进行判断,对需要到达其他网段的报文,一律交给其默认网关进行转发,在本例中 PCA 的默认网关设置为 RTA。(以上是对路由器进行 IP 报文转发过程和原理的大致描述,在后续的模块中,我们还将进一步学习路由信息和转发过程的细节。最后,路由器进行报文转发依赖自身所拥有的路由转发信息,这些信息可以手工配置,但更常见的情况是路由器之间自动地进行路由信息的交换,以适应网络动态变化和扩展的要求,因此,路由器的另一个重要作用是交互路由等控制信息并进行最优路径的计算。

实验2:CubeMx+protues+AD单通道采样_cubex仿真ad-程序员宅基地

文章浏览阅读1.4k次。目标:实现采样读取AD口的电压。 添加全局变量 /* USER CODE BEGIN 1 */ uint16_t ADC1_Value; /* USER CODE END 1 */在收到串口指令的时候,进行采样,并在串口打印:void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart){..._cubex仿真ad

操作系统进程调度算法(c语言模拟实现)_操作系统原理实验进程调度模拟c语言代码-程序员宅基地

文章浏览阅读2.8k次,点赞59次,收藏56次。本文旨在分享如何使用c语言对操作系统中的进程调度算法进行模拟实现_操作系统原理实验进程调度模拟c语言代码

推荐文章

热门文章

相关标签