世界上最伟大的投资就是投资自己的教育
Node.js RESTful APIs Frameworks Compare
API 驱动
快速部署 Node.js API 服务器的理想选择
- Actionhero
这是一个适用于 Node.js 的快速、轻量级和多重传输的 API 服务器,非常适合创建一个易于使用的工具包来制作可重用和可扩展的 API。集成了集群性能和延迟任务的功能。
Actionhero 可提供上层的支持(例如通过 JSON 集成),同时也可以在底层工作(例如与 TCP 协议通信)。它具有集群准备、内置支持后台任务和零停机部署的功能,并且它能像 CDN 一样分发而不需要运行 Apache 或 Nginx。
GitHub stars:1600+
- Loopback
这是一个由 IBM 创建的高度可扩展的 API 框架,可以使用非常少的编码创建动态端到端的 REST APIs。它通过为开发人员提供一个简单的 API 工具来补充 Express 框架。
Loopback API 可以连接设备,而且可以与 Android,iOS 和 AngularJS SDK 集成以创建客户端应用程序。对于应用程序的图形版本,Loopback 使用 StrongLoop Arc。
GitHub stars:8500+
- Restify
这是一个为构建 REST APIs 而创建的轻量级框架。它是一个通过 API 提供数据的服务器端框架。Restify 重点关注调试和分析,以便优化服务器。
GitHub stars:6400+
- Socket.io
这个框架主要适用于实时 Web 应用的场景(例如文档协作和数据交换)。Socket.io 可以实现 Web 客户端和服务器之间的事件驱动通信;它在浏览器中像客户端库一样工作,还有一个用于 Node.js 的服务器端库。
Socket.io 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时 app 功能,模糊化各种传输机制。它是跨平台的,多种连接方式自动切换,做即时通讯方面的开发很方便,而且能和 Express 提供的传统请求方式很好的结合,即可以在同一个域名,同一个端口提供两种连接方式:request/response, websocket(flashsocket,ajax…)
GitHub stars:31000+
全栈
专注于对全栈的支持。它们涵盖了应用程序开发的每一步,从中间件和 UI 到 API 和数据库的集成
- Meteor
Meteor 提供构建现代 Web 应用程序的超简单环境。这是用于构建实时 Web 应用程序的模型视图控制器(MVC)框架,它与服务器不断同步。内置了一套预先编写好的独立的模块,支持编写应用程序代码。
使用 Meteor 构建的应用程序可以在 OS X,Windows 和 Linux 操作系统上运行。它是一个 “固执(opinionated)” 的框架。
(编者注:opinionated,编者理解的意思是如果不按照某种方式使用这个框架,而是用别的方法使用会导致用起来很困难、不方便)
GitHub stars:37000+
- Keystone
Keystone,以 Express 和 MongoDB 为基础搭建的 Node.js CMS 和 Web 应用程序平台。此框架是数据库驱动的 Web 应用程序和 API 的理想选择,其中 Express,MongoDB 和 Mongoose 是 Node 的关键组件。
GitHub stars:9300+
- Express
疯一般快速(而简洁)的服务端 JavaScript Web 开发框架,基于 Node.js 和 V8 JavaScript 引擎
Express 是一个简洁而灵活的 Node.js Web 应用框架,提供一系列强大特性以帮助你创建各种 Web 应用。它是快速、“不固执”,简约和有效的中间件路由框架。Express 是最重要的必需 Node.js 框架之一,是构建 Web/移动应用程序和 API 的理想选择。
GitHub stars:30500+
- Koa2
Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础
这是一个无回调的轻量级中间件框架,通过 co 使用 generators 使得编写 web 应用程序和 REST API 更加丝般顺滑。可以用于编写 Web 应用程序和 REST APIs,还可以添加新功能并自定义路径中的任何内容。它支持 ES6 和最新的 JavaScript 版本。
GitHub stars:15000+
- Hapi
Hapi:配置优于编码,业务逻辑必须和传输层进行分离
Node.js 的服务器框架。Hapi 是一个用来构建基于 Node.js 的应用和服务的富框架,使得开发者把重点放在便携可重用的应用逻辑而不是构建架构。内建输入验证、缓存、认证和其他 Web 应用开发常用的功能。
此框架是快速构建和 API 测试的理想选择,你也可以使用 Hapi 构建完整的网站。它有一个伟大的插件集合,使其能够在部分工作,而不破坏其余的代码库。十分适用于团队合作项目。
由于 Hapi 是由沃尔玛的开发人员创建,因此它提供了企业级功能
GitHub stars:7500+
优缺点比较如下
Frame | Advantage | Shortcoming |
---|---|---|
Actionhero | 支持 http 和 websocket,支持 pub/sub(redis 提供),支持 cache(redis 提供),支持 cluster,对 api 的输入输出进行 validate,发布方式与 CDN 类似 | Star 少,社区不完备,样例不多 |
Restify | 借鉴 Express,更精简轻量,版本控制,专门的 RESTful API 框架,稳定性、可调试和可监控,DTrace 支持 | 并发不如 Express,社区单薄 |
Meteor | 大数据,搭建环境简单,文档齐全,前后端语言统一,共享代码,快速迭代,同步避免回调,mini Mongo,反应式编程 | 全局变量,文件加载顺序问题,Session 问题,内存问题,测试方案,性能问题 |
Keystone | Express+MongoB,动态路由,数据库域,自动生成管理员页面,编码简单 | 社区小,文档少,可参考样例不多 |
Express | 社区大,框架大,最成熟,启动和运行简单,内置路由、代码复用 | 手动处理单调乏味任务,无内置错误处理,过多的中间件,体积太大 |
Koa2 | 体积小,表现力强,容易编写的中间件,ES6,CO、Async/Await | 超前的 ES6 和 ES7,中间件的多样化 |
Hapi | 配置优于编码,适合团队项目开发,一致性、可复用性,WalmartLabs 支持,大企业的使用 | 更大更复杂的应用,样板代码堆砌,可供参考样例少,开源应用程序少,对开发者要求高 |
本站文章均为原创内容,如需转载请注明出处,谢谢。
© 汕尾市求知科技有限公司 | Rails365 Gitlab | 知乎 | b 站 | csdn
粤公网安备 44152102000088号 | 粤ICP备19038915号
Top