Node。js是专注高性能服务器开发的javascript运行环境。我们将在这篇文章向大家介绍几款主流Node。jsWeb框架的特点及优缺点,希望给大家作为参考。 主要参考的Node。jsWeb框架包括:express,koa,hapi,restify,fastify,eggjs,thinkjs,Sails,Adonisjs,NestJS。 Benchmarks测试机器:macosi58g测试工具:wrkc100t10d1mhttp:127。0。0。1:3000Node:v12。4。0 NodejsWeb框架压测 其实单单helloworld的压测意义不是很大,但是也可以给我们做个简单的参考。其中express,koa2,hapi,restfiy,fastify属于微框架,eggjs,thinkjs,Sails,Adonisjs,NestJs要稍重一些。其中Sails,NesstJs是基于express,eggjs,thinkjs是基于koa2。我们可以看到Fastify的qps是最高的,Adonisjs垫底。 GithubStar NodejsWeb框架GithubStar GithubStar量一定程度可以反应出框架的受欢迎程度,我们可以看到,Express星星最多,毕竟是老牌框架,thinkjs垫底。 NPM每周下载量 NodejsWeb框架每周下载量 npm每周下载量可以真实反应框架目前的受欢迎程度,我们看到Express已经是独领风骚,其实里面还有基于Express做底层的Web框架的量。thinkjs的表现是非常差,只有367的量。 评测 个人观点,仅供参考 Express Node界最老牌的Web框架,最成熟,生态最好。提供了基础的请求上下文封装,路由,中间件,模板引擎接口,静态资源服务。麻雀虽小,五脏俱全。很方便的进行扩展,大量的基于Express的框架。 Koa Express原班人马打造,定义为下一代Web开发框架。仅提供一个请求上下文,中间件机制,没有捆绑任何中间件。通过利用asyncawait,让你写出更优雅的代码。方便开发者针对自身需求开发自定义框架。 Hapi hapi是由沃尔玛实验室的移动团队创建的,Hapi是一个用来构建基于Node。js的应用和服务的富框架,使得开发者把重点放在便携可重用的应用逻辑而不是构建架构。内建输入验证、缓存、认证和其他Web应用开发常用的功能。没有中间件,但提供了强大的插件机制。 restify 专注于RESTapi开发。提供了handle的链式调用及插件机制。 Fastify Fastify号称是最快的Nodejsweb框架,在Json输出的场景下,通过JsonSchema序列化为Json数据,可以达到原生JSON。stringify2倍的性能,在极端情况下可达到10倍速。采用对象池,将请求上下文包装对象进行复用。使用trie树存储路由,查找效率更高(在大量有路由的情况下)。Fastify提供了强大的插件机制,通过插件可以分割路由及中间件。 egg eggjs是由阿里推出的一款web企业级框架,提供了完整的Web开发所需的组件,使用koa作为底层。使用了约定大于配置的理念,提供强大的插件机制,方便扩展。 thinkjs thiinkjs是由360推出的,基于koa开发,借鉴了ThinkPHP的一些理念,降低了开发者的使用难度,使用了类是很多php框架的默认路由,使用了继承和钩子方法来重用逻辑。 SailsJs Sailsjs可以算最早开始做集成度很高的框架,底层基于express,Nodejs上的Rails。 NestJs NestJs的主要卖点是TypeScript的完全支持。大量的使用装饰器,代码看起来清爽多了。orm采用TypeORM,使用类型加装饰器,代码比一般的orm整洁得多。 AdonisJs AdonisJs是Nodejs上的Laravel。