当前位置: 首页 > 科技观察

Node.js主流Web框架对比

时间:2023-03-12 20:33:54 科技观察

Node.js是一个专注于高性能服务器开发的javascript运行环境。在本文中,我们将介绍几款主流的Node.jsWeb框架的特点和优缺点,希望能为大家提供参考。主要可供参考的Node.jsWeb框架包括:express、koa、hapi、restify、fastify、eggjs、thinkjs、Sails、Adonisjs、NestJS。基准测试机器:macosi58g测试工具:wrk-c100-t10-d1mhttp://127.0.0.1:3000节点:v12.4.0NodejsWeb框架压测其实单靠helloworld的压测是不行的非常有意义。但也可以给我们一个简单的参考。其中express、koa2、hapi、restfiy、fastify属于微框架,eggjs、thinkjs、Sails、Adonisjs、NestJs则稍重一些。其中Sails和NessJs是基于express的,eggjs和thinkjs是基于koa2的。我们可以看到Fastify的qps最高,Adonisjs垫底。GithubStarNodejsWeb框架GithubStarGithubStar数量在一定程度上可以反映该框架的受欢迎程度。我们可以看到Express拥有最多的星星。毕竟是老牌框架,thinkjs在底层。npmweeklydownloadsofNodejswebframeworkweeklydownloadsnpmweeklydownloads可以真实反映框架目前的流行程度,可以看出Express已经领先,事实上基于Express的web框架底层量还是有的。thinkjs性能很差,只有367。评价个人意见,仅供参考ExpressNode是最老的web框架,最成熟,生态最好。提供基本的请求上下文封装、路由、中间件、模板引擎接口、静态资源服务。小而完整。扩展非常方便,大量基于Express的框架。由KoaExpress原班人马打造,被定义为下一代Web开发框架。只提供一种请求上下文,中间件机制,不捆绑任何中间件。通过使用async/await,你可以写出更优雅的代码。方便开发者根据自己的需求开发自定义框架。Hapihapi由沃尔玛实验室的移动团队创建,是一个用于构建基于Node.js的应用程序和服务的丰富框架,允许开发人员专注于可移植和可重用的应用程序逻辑,而不是构建体系结构。内置输入验证、缓存、身份验证和Web应用程序开发中常用的其他功能。没有中间件,但提供了强大的插件机制。restify专注于RESTAPI开发。提供句柄链调用和插件机制。FastifyFastify声称是最快的NodejsWeb框架。在Json输出的场景下,通过将JsonSchema序列化为Json数据,可以达到原生JSON.stringify2倍的性能,极端情况下10倍的速度。对象池用于重用请求上下文包装器对象。使用trie树存储路由,查找效率更高(在路由数量较多的情况下)。Fastify提供了强大的插件机制,通过插件机制可以拆分路由和中间件。egggeggjs是阿里推出的web企业级框架,提供完整web开发所需的组件,底层使用koa。使用约定优于配置的概念,它提供了强大的插件机制,便于扩展。thinkjsthiinkjs是由360推出的。它是基于koa开发的。它借鉴了ThinkPHP的一些思想,降低了开发者的难度。它使用类作为许多PHP框架的默认路由,并使用继承和钩子方法来复用逻辑。SailsJsSailsjs可以算是第一个集成度很高的框架。底层基于Nodejs上的express和Rails。NestJsNestJs的主要卖点是对TypeScript的全面支持。使用了很多装饰器,代码看起来干净多了。orm采用了TypeORM,使用了类型和装饰器,代码比普通的orm整洁多了。AdonisJsAdonisJs是Nodejs上的Laravel。