写点什么

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

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

数字中国 | 史宾格荣获 “2025数字中国创新大赛”银奖

百度安全

零信任的用户行为分析: 通过综合策略解锁安全洞察力(一)

天翼云开发者社区

安全 零信任策略

彻底搞懂 MCP 是什么、和 API 的区别、对企业的价值,如何在企业落地、未来趋势丨社区来稿

声网

区块链RWA系统的运营

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA系统开发

抖音商品详情API接口(附代码示例)

tbapi

抖音API 抖音数据采集 抖音商品详情接口 抖音商品sku接口

AI智上 | 数智司库:某能源央企集团智慧司库建设领先实践

用友智能财务

信息化 用友 财务 数智化 司库

天翼云息壤全面升级!

天翼云开发者社区

算力 智能云 息壤

台达支持经济学人集团Economist Impact发布全球可持续AI报告

财见

《算法导论(第4版)》阅读笔记:p9-p9

codists

算法

想提升SEO爬虫效率?一套完整SERP抓取解决方案给你!

kookeey代理严选

动态代理 SEO工具 关键词搜索 SEO 优化

云MES系统源码,支持 SaaS 多租户,支持二次开发

万界星空科技

开源 mes 开源mes mes源码 万界星空科技mes

PPT美化AI哪个好?2个AI美化PPT软件盘点!

职场工具箱

效率 职场 PPT 办公软件 AI生成PPT

区块链ETF系统的优化

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

Arthas mc(Memory Compiler/内存编译器 )

刘大猫

人工智能 监控 Arthas 监控工具 mc

黑龙江等保测评最新消息如下

黑龙江陆陆信息测评部

从表格到系统:Classmethod 用 NocoBase 构建员工信息管理系统

NocoBase

开源 低代码 表格 管理工具 员工信息管理

深圳金融科技交流会,探讨AI大模型重塑资管新生态

非凸科技

Q1收入猛增46%,AI出海致富的秘密,藏在昆仑万维财报里

脑极体

AI

玩转MCP | 一文看懂如何在 Trae IDE 中解锁 MCP

TRAE

人工智能 开发者 #编程 MCP Trae

HarmonyOS运动开发:如何集成百度地图SDK、运动跟随与运动公里数记录

王二蛋和他的张大花

鸿蒙

区块链RWA系统的上线

北京木奇移动技术有限公司

区块链技术 软件外包公司 RWA开发

Invicti v25.5.0 发布,新增功能简介

sysin

invicti

斯曼森携手亚马逊云科技,使用 Amazon Nova 打造中文法律大模型

亚马逊云科技 (Amazon Web Services)

通义发布小尺寸多模态模型 Qwen2.5-Omni-3B;英伟达开源 ASR 模型 Parakeet TDT 0.6B 丨日报

声网

AI 调教指南!一文教会你如何在 Trae IDE 中配置自定义规则

TRAE

人工智能 编程 开发者 MCP Trae

Timefold 仓库拣货优化案例导读

PeterOne

人工智能 算法 运筹规划

腾讯元宝再更新!上线“对话分组”,支持自定义回答风格

极客天地

Gitea Enterprise 23.8.0 发布 - 本地部署的企业级 Git 服务

sysin

Gitea

从0到1带你搞定“微信广告转化归因”

Chris Zhang

归因分析 微信广告 广告归因

数造科技携DataBuilder亮相安徽科交会,展现“DataOps +AI”双引擎魅力

数造万象

大数据 AI 行业资讯 Data 科技

中烟创新入选“2024卓越软件项目优秀案例”

中烟创新

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