写点什么

2019 年,你需要关注这些 Node API 和 Web 框架

  • 2019-02-18
  • 本文字数:2728 字

    阅读完需:约 9 分钟

2019年,你需要关注这些Node API和Web框架

对于 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 提供了大量独立但紧密集成的插件,提供了日志记录、模板、缓存、错误处理等功能。它的对象验证插件 Joi(https://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 和数据库可用的解决方案,例如 Mongoose(Mongo)或 TypeORM(MySQL/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、工程化、性能优化…大前端的下一站在哪里?点击下图了解更多详情。



2019-02-18 14:3417247
用户头像

发布了 731 篇内容, 共 485.0 次阅读, 收获喜欢 2008 次。

关注

评论 2 条评论

发布
用户头像
提到NodeJS企业级框架,阿里开源的Egg真的很不错,至少也提一下吧 ?
https://github.com/eggjs/egg/
https://github.com/midwayjs/midway
2019-02-23 21:18
回复
用户头像
node.js在数据分析领域也发展得挺有意思的
2019-02-19 08:36
回复
没有更多了
发现更多内容

如何利用1688API:通过商品ID与URL一键接入,高效采集商品详情页实时数据指南

代码忍者

API 接口 pinduoduo API

云消息队列 Kafka 版全面升级:经济、弹性、稳定,成本比自建最多降低 82%

阿里巴巴云原生

kafka 阿里云 云原生

Redis 实现高效任务队列:异步队列与延迟队列详解

左诗右码

速卖通商品详情API实战应用:调用实例与解析

代码忍者

API 接口 pinduoduo API

字节豆包发布新模型,AI 一句话 P 图;Google 正式推出 Vids,简单提示即可生成视频演示丨 RTE 开发者日报

RTE开发者社区

脑机接口、嵌入式 AI 、工业级 MR、空间视频和下一代 XR 浏览器丨RTE2024 空间计算和新硬件专场回顾

RTE开发者社区

数据资产入表、全面激活数据要素潜能,赋能企业发掘崭新价值!

奇点云

CST教程——如何理解CMA中计算MWC时的MS

思茂信息

cst cst使用教程 CST软件

缓存之美——如何选择合适的本地缓存?

京东科技开发者

B端体验深耕-洞察用户需求,打造心有灵犀的使用体验

京东科技开发者

Java定时任务大盘点:发工资也能“指日可待”

京东科技开发者

从0到1的突破,用户如何借助我们的软件实现企业增长?

天津汇柏科技有限公司

低代码 企业

通义×Milvus:手把手教你打造专属AI技术顾问

Zilliz

AI Milvus 通义

万界星空科技轮胎行业MES系统数字化解决方案

万界星空科技

mes 万界星空科技mes 汽车轮胎行业 轮胎mes

GitLab 升级如何查看升级路径?

极狐GitLab

大模型时代,云原生数据底座的创新和实践

百度Geek说

大数据 百度 智能云

《Django 5 By Example》阅读笔记:p17-p53

codists

Python django

数据湖系列之四 | 数据湖存储加速方案的发展和对比分析

Baidu AICLOUD

分布式缓存 数据湖加速 云原生文件系统

软件项目中的合作伙伴和供应商:应对挑战的策略

易成研发中心

项目管理 程序员 软件项目管理

HyperWorks使用六面体和三棱柱单元进行实体网格剖分

智造软件

CAE软件 Hypermesh hyperworks

【CAP评测有奖】邀您共探 AI 应用开发新趋势,赢取多重好礼!

阿里巴巴云原生

阿里云 云原生 CAP

常德等保测评机构有哪些?电话多少?

行云管家

等保 等保测评 常德

大数据行业数据多样性体现在哪里?用堡垒机可以保障大数据安全吗?

行云管家

大数据 数据安全 数据运维

数据资产入表,如何接住这“泼天的富贵”?

奇点云

云真机测试

测试人

软件测试

火山引擎数据飞轮模式下的线上营销:内容产出更智能、人群触达更精准

字节跳动数据平台

大模型 数据飞轮

探索微店API接口:如何获取并解析商品详情数据的Json格式指南

代码忍者

API 接口 pinduoduo API

Domino 流计算快速上手 - 1. 扩维

YMatrix 超融合数据库

数据库 数据仓库 YMatrix

2019年,你需要关注这些Node API和Web框架_大前端_Tim Nolet_InfoQ精选文章