写点什么

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

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

极智网络告警关联规则挖掘

鲸品堂

方法论 解决方案

Redis单线程已经很快,为何6.0要引入多线程?有啥优势?

Java架构师迁哥

用 JavaScript 实现三次贝塞尔动画库 - 前端组件化

三钻

JavaScript 大前端 动画 组件化

技术人如何调研和选型第三方 SDK?全文干货

融云 RongCloud

如何将区块链打造为城市底层基础设施

CECBC

区块链

情指勤指挥调度平台搭建,公安重点人员管控平台搭建

程序员去大公司面试,我的头条面试经历分享,搞懂这些直接来阿里入职

欢喜学安卓

android 程序员 面试 移动开发

大数据前置知识-服务器及磁盘

大数据技术指南

大数据 4月日更

一文读懂容器存储接口 CSI

阿里巴巴云原生

容器 云原生 k8s 存储 调度

Javacv 音视频小工具 - 下载抖音无水印视频

张音乐

Java 音视频 ffmpeg 抖音 javacv

BERT和GAN咋压缩,且看咱PaddleSlim新利器—— OFA

百度大脑

百度 飞桨

android开发面试题,字节跳动Android三面凉凉,手慢无

欢喜学安卓

android 程序员 面试 移动开发

SpringBoot Admin2.0 集成 Java 诊断神器 Arthas 实践

阿里巴巴云原生

Java 运维 云原生 中间件 Arthas

26天吃透算法笔记,面试字节,面试官朝我比了个“ok”

比伯

Java 编程 架构 算法 技术宅

攻击区块链网络的都有哪些方式方法

CECBC

区块链

Hadoop的发展及其架构

五分钟学大数据

hadoop 4月日更

专业开发者眼中的HarmonyOS:专访资深软件工程师李宁

Geek_283163

华为

“区块链+电子商务”,电商能否再创辉煌?

电微13828808271

交易所跟单软件搭建,合约跟单系统开发

回归主流:区块链新大门的“密钥”

CECBC

区块链

聪明人的训练(十二)

Changing Lin

4月日更

思维导图学《Java性能权威指南》

Yano

Java 性能 思维导图

混音新手必备软件:FL Studio,用它简单制作混音

奈奈的杂社

跟着源码学IM(八):万字长文,手把手教你用Netty打造IM聊天

JackJiang

Netty 即时通讯 IM

阿里高级架构师纯手打832页Java全栈知识点笔记,吃透后成功七面上岸滴滴!

Java架构追梦

Java 阿里巴巴 架构 面试 成长笔记

面试官:请说说什么是BFC?大白话讲清楚

蛙人

CSS 大前端

EGG Network阿凡提 公链EFTalk全球首创POTP二叉交叉共识机制

币圈那点事

企业如何做数字化转型?想要资产状况及时把控,它的作用至关重要!

一只数据鲸鱼

数字化 数据可视化 资产管理

区块链电子政务——不动产综合服务平台

电微13828808271

积极研发区块链技术落地应用业务 这家A股上市企业试水云算力挖矿

CECBC

区块链

视频云全球创新挑战赛 —— 视频目标分割经典算法解析

阿里云CloudImagine

阿里云 计算机视觉

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