网站开发发展和前景,wordpress 修改注册地址,新手适合在哪个平台开网店,移动宽带怎么网上续费对于Node.js框架和开源软件来说#xff0c;2018年是非常有趣的一年。开发者社区讨论了企业赞助对开源项目的作用以及如何维护那些没有经济支持却有数百万人使用的项目。同样#xff0c;安全问题也得到了极大关注#xff0c;一些流行的Node/JS软件包被劫持#xff0c;Github…对于Node.js框架和开源软件来说2018年是非常有趣的一年。开发者社区讨论了企业赞助对开源项目的作用以及如何维护那些没有经济支持却有数百万人使用的项目。同样安全问题也得到了极大关注一些流行的Node/JS软件包被劫持Github为托管的项目推出了安全警报功能。
在这篇文章中我们为Node.js框架增加了新的类别如赞助情况、捐赠情况和NPM审计漏洞以便更好地了解每个框架如何解决这些问题。框架按字母顺序排列。
数据图表
Github star数
在Github星标数量方面Sails、Koa和Express明显高于其他框架。但是在2019年星标总量可能不能作为最具相关性的指标我们还需要考虑增长情况。2018年star数增长
在2018年星标数量增长方面Nest呈现出非常明显的爆发式增长。Y轴是从2018年1月初到2018年12月中旬的增长百分比。有趣的是相比之下Sails和Express几乎是扁平的但这也可能是由于市场出现了饱和有兴趣给Node.js框架加星标的人总共就那么多。依赖关系
从这个角度来看Nest非常少而Sails几乎是Nest的四倍。NPM每周下载量
Express让所有竞争对手的下载量相形见绌。只有Koa和Hapi在这张图上出现了微小的彩色条纹。当然有些框架在内部使用了Express比如Sails和Nest。选择Node.js框架
每个框架都有自己的目标、设计决策和特点。你应该仔细考虑这些东西是否适合你的用例。
有时候可以这么想
“我们需要一个完整的Web应用程序包括HTML模板、数据库模型、身份验证、API集成、邮件列表等等”。在本文中我们将这些标记为全栈。一个完全不同的用例可以是
“我们只需要一个后端API端点用于摄取JSON格式的IOT数据”。我们将这些标记为API。当然你的用例可能是介于两者之间。在这种情况下你需要一个框架先从小规模开始然后通过加入插件或中间件增加其他复杂性和功能。我们将这些标记为Minimal因为这些框架的核心都很小不过生态系统为它们提供了其他模块。
AdonisJs
AdonisJS生态系统附带了一组特定模块可以插入到核心框架中。这意味着测试运行器或模板引擎对于大多数用户来说可能是新的不过你也可以使用其他运行器或模板引擎。
AdonisJs于2016年启动目标是成为一个全栈式框架可以直接使用HTTP请求路由、模板、身份验证和数据库ORM。
在社区中人们通常将AdonisJs与PHP的Laravel进行比较。
HTTPS://ADONISJS.COM/Exepress
Node.JS API框架的祖先。它仍然是一个非常小的框架为你提供了一个简单的API服务器用户通过众多可用的中间件项目来添加额外功能。
因为占用资源少Sails.js和Nest等框架使用Express作为基础应用程序层然后使用额外的功能对其进行扩展。
HTTP://EXPRESSJS.COM/Fastify
Fastify是一个100针对性能进行优化的API框架。受到Hapi和Express的启发维护人员选择专注于在开发者体验和原始速度及性能之间实现平衡。
Fastify仍然是一个非常小的框架但中间件架构与Express和Restify中间件兼容极大地扩展了可能的用例。
Fastify提供了实验性的HTTP 2.0支持并支持TypeScript类型。
HTTPS://WWW.FASTIFY.IO/Hapi
Hapi由沃尔玛开发旨在为他们的电子商务业务提供坚实的基础。现在作为开源框架分拆出来与沃尔玛已经没有关系。Hapi现在仍然很受欢迎。
Hapi提供了大量独立但紧密集成的插件提供了日志记录、模板、缓存、错误处理等功能。它的对象验证插件Joihttps://github.com/hapijs/joi和框架本身一样很受欢迎。
在社区中Hapi因其API、健壮性和可靠性而备受赞誉。此外Hapi没有任何外部代码依赖因此其安全性更加可控。
Hapi 17.x使用ES6和ES7进行了全面重写。
HTTPS://HAPIJS.COM/Koa
Koa的开发者与Express是同一波人但它是以利用新的Javascript语言功能为目标如async/await。Koa框架甚至比Express更小基本安装中不包含路由。
Koa是最早利用ES6和ES7功能的API框架之一。
Koa提供了一份第三方中间件列表几乎和Express的一样长尽管有很多中间件似乎已经被遗弃或者没有人进行定期维护。
HTTPS://KOAJS.COM/Nest
Nest于2017年崭露头角并在2018年大受欢迎至少从Github的星标数来看。Nest与其他框架略有不同因为它是基于TypeScript的并使用了Express。Nest也可以使用“普通”JavaScript但框架作者还是极力建议使用TypeScript。
Nest提供了一个内置的GraphQL适配器利用了流行的Apollo框架尽管现在已经有很多传统的ORM和数据库可用的解决方案例如MongooseMongo或TypeORMMySQL/Postgres。
对于Nest来说2018年是美好的一年我们很期待2019年它将为我们带来哪些东西。
HTTPS://NESTJS.COM/RESTify
Restify的目标是成为一个构建RESTful API的框架而其他框架倾向于解决API、静态内容和模板解析问题。它已经被用在NPM、Netflix、Joyent和Pinterest的生产环境中。
Restify的目标在它的文档和指南中可见一斑。它们很简单而且直接了当。可以使用插件API来构建扩展不过第三方插件并不多。
可调试性是Restify的一个主要特点它支持自动生成Dtrace探针这是其他框架中不常见的功能。
HTTP://RESTIFY.COM/Sails
Sails可以说是第一个提供类似于Ruby on Rails“全栈式”体验的Node.js Web框架。它提供了一个MVC框架和匹配的技术栈满足大多数业务场景的需求。
你可以非常快速地搭建一个CRUD应用程序因为代码即配置原则以及框架为开发人员选择的默认设置。与Rails类似Sails也提供了脚手架生成器可以基于对象/实体创建API端点。Sails还提供了自己的Waterline ORM支持多种数据库类型如Postgres、MongoDB和Redis。
该框架最初由Balderdashy公司开发现在这家公司已更名“Sails公司”为Sails提供企业支持。
HTTPS://SAILSJS.COM/Server.js
Server.js始于2017年在2018年一直保持稳健的增长。作为一个新框架Server.js使用了现代ES2016和ES2017语言功能。它提供的组件包括文件服务、Websocket、CSRF、SSL等等。默认情况下甚至可以将会话保存在Redis中。
因为Server.js也基于Express的因此你也可以使用Express中间件来扩展其功能。
除了有一个很棒的NPM软件包名之外Server.js看起来也非常有前途虽然它很轻量但却是一个全栈式API和Web框架。
HTTPS://SERVERJS.IO/英文原文
https://checklyhq.com/blog/2018/12/node.js-api-and-web-frameworks-for-2019/
更多内容请关注前端之巅。会议推荐
2019年6月GMTC全球大前端技术大会2019即将到来。小程序、Flutter、移动AI、工程化、性能优化…大前端的下一站在哪里点击下图了解更多详情。