把握行业变革关键节点,12 月 19 日 - 20 日,AICon北京站即将重磅启幕! 了解详情
写点什么

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:3417215
用户头像

发布了 731 篇内容, 共 482.8 次阅读, 收获喜欢 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
回复
没有更多了
发现更多内容

软件测试/人工智能丨人工智能会取代软件测试工程师吗

测试人

人工智能 软件测试

inBuilder低代码平台新特性推荐-第九期

inBuilder低代码平台

低代码

HDD行业沙龙举办,火火兔、看护家、乐普健康官宣开发鸿蒙原生应用

最新动态

最新demo版|如何0-1开发支付宝小程序之如何调试小程序(二)

盐焗代码虾

支付宝小程序 小程序调试 如何调试

RTC技术沦陷后,人类或将一夜回到解放前?

X2Rtc

RTC 未来世界 科技趋势

Util应用框架基础(七)- API

何镇汐

开源 后端 .net core

软件测试/人工智能丨引领未来:软件测试中的人工智能

测试人

人工智能 软件测试

云桌面架构的全面剖析

青椒云云电脑

云桌面 云桌面解决方案 云桌面系统

原来 TinyVue 组件库跨框架(Vue2、Vue3、React、Solid)是这样实现的?

OpenTiny社区

开源 Vue 前端 React SOLID

item_search_pro-高级关键字搜索淘宝商品api接口

技术冰糖葫芦

API 文档

如何理解低代码开发工具?

树上有只程序猿

低代码 应用开发 JNPF

JNPF开发平台凭什么火?

互联网工科生

低代码 JNPF

Util应用框架开发环境搭建(十)- 安装 Redis

何镇汐

开源 后端 .net core

2G内存搞定一亿数据的分析引擎

Western Panda

数据库 大数据 开源 数据分析 OLAP

文心一言 VS 讯飞星火 VS chatgpt (140)-- 算法导论11.4 5题

福大大架构师每日一题

福大大架构师每日一题

青椒云云桌面系统_企业上云桌面云服务解决方案

青椒云云电脑

云桌面 云桌面解决方案 云桌面系统

这6个复盘模型,你知道几个?让你轻松搞定年终总结

彭宏豪95

个人成长 复盘 年终总结 在线白板 项目复盘

开源流程设计器的对比与选型

小狗围观科幻

从大模型到内容生成,初窥门径的AI新次元

阿里云CloudImagine

云计算 视频云 AIGC

技术分享| anyRTC之RTN网络

anyRTC开发者

音视频 网络 RTC RTN

鸿蒙系统明年将不再适配安卓

不在线第一只蜗牛

鸿蒙 安卓 HarmonyOS

软件测试/人工智能|使用ChatGPT帮我们绘制产品架构图

霍格沃兹测试开发学社

软件测试/人工智能|述职报告头很大,ChatGPT来帮你

霍格沃兹测试开发学社

全栈程序员太难了,这个报表工具别再错过了!!

秃头小帅oi

程序员 前端 后端 低代码 全栈

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