摘要: 本文整理了 10 款 Node.js 框架,根据应用程序功能将框架分为三类:API,全栈和类 Sinatra 的框架。
Node.js 是一个开源的跨平台运行时环境,用于开发服务器端和网络应用程序,它基于 Google Chrome V8 JavaScript 引擎构建,你可以使用 Node.js 中的 JavaScript 来实现用 Ruby 或 PHP 所做的一切东西。
本文整理了 10 款 Node.js 框架,根据应用程序功能将框架分为三类:API,全栈和类 Sinatra 的框架。文中的数据统计于各项目的 GitHub 主页(时间为 2016.12.20)。以后可能会有变动。
API
以下框架由 API 驱动,是快速部署 Node.js API 服务器的理想选择。
1. Actionhero
这是一个适用于 Node.js 的快速、轻量级和多重传输的 API 服务器,非常适合创建一个易于使用的工具包来制作可重用和可扩展的 API。集成了集群性能和延迟任务的功能。
Actionhero 可提供上层的支持(例如通过 JSON 集成),同时也可以在底层工作(例如与 TCP 协议通信)。它具有集群准备、内置支持后台任务和零停机部署的功能,并且它能像 CDN 一样分发而不需要运行 Apache 或 Nginx。
GitHub stars:1,511
GitHub contributors:68
2. Loopback
这是一个由 IBM 创建的高度可扩展的 API 框架,可以使用非常少的编码创建动态端到端的 REST APIs。它通过为开发人员提供一个简单的 API 工具来补充 Express 框架。
Loopback API 可以连接设备,而且可以与 Android,iOS 和 AngularJS SDK 集成以创建客户端应用程序。对于应用程序的图形版本,Loopback 使用 StrongLoop Arc。
GitHub stars:7,936
GitHub contributors:82
3. Restify
这是一个为构建 REST APIs 而创建的轻量级框架。它是一个通过 API 提供数据的服务器端框架。Restify 重点关注调试和分析,以便优化服务器。
GitHub stars:6,046
GitHub contributors:146
4. Socket.io
这个框架主要适用于实时 Web 应用的场景(例如文档协作和数据交换)。Socket.io 可以实现 Web 客户端和服务器之间的事件驱动通信;它在浏览器中像客户端库一样工作,还有一个用于 Node.js 的服务器端库。
Socket.io 实现了实时双向的基于事件的通讯机制。旨在让各种浏览器与移动设备上实现实时 app 功能,模糊化各种传输机制。它是跨平台的,多种连接方式自动切换,做即时通讯方面的开发很方便,而且能和 Express 提供的传统请求方式很好的结合,即可以在同一个域名,同一个端口提供两种连接方式:request/response, websocket(flashsocket,ajax…)
GitHub stars:29,306
GitHub contributors:124
全栈
以下框架专注于对全栈的支持。它们涵盖了应用程序开发的每一步,从中间件和 UI 到 API 和数据库的集成。
5. Meteor
Meteor 提供构建现代 Web 应用程序的超简单环境。这是用于构建实时 Web 应用程序的模型视图控制器(MVC)框架,它与服务器不断同步。内置了一套预先编写好的独立的模块,支持编写应用程序代码。
使用 Meteor 构建的应用程序可以在 OS X,Windows 和 Linux 操作系统上运行。它是一个“固执(opinionated)”的框架。
(编者注:opinionated,编者理解的意思是如果不按照某种方式使用这个框架,而是用别的方法使用会导致用起来很困难、不方便)
GitHub stars:36,236
GitHub contributors:323
6. Keystone
Keystone,以 Express 和 MongoDB 为基础搭建的 Node.js CMS 和 Web 应用程序平台。此框架是数据库驱动的 Web 应用程序和 API 的理想选择,其中 Express,MongoDB 和 Mongoose 是 Node 的关键组件。
GitHub stars:8,541
GitHub contributors:183
7. MERN
类似 Mean,是一个全栈 Javascript 开发架构,使用 MongoDB,Express,React,Node。具有以下特性
- React 组件的热加载
- 模块化文件结构
- 使用 React 路由器进行代码拆分
- Ava 测试运行(并行运行测试)
- 国际化支持
- 支持 Docker
- 支持代码生成
类似 Sinatra 的框架
8. Express
Express 是一个简洁而灵活的 Node.js Web 应用框架,提供一系列强大特性以帮助你创建各种 Web 应用。它是快速、“不固执”,简约和有效的中间件路由框架。Express 是最重要的必需 Node.js 框架之一,是构建 Web/移动应用程序和 API 的理想选择。
GitHub stars:29,008
GitHub contributors:192
9. Koa
Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。
这是一个无回调的轻量级中间件框架,可以用于编写 Web 应用程序和 REST APIs,还可以添加新功能并自定义路径中的任何内容。它支持 ES6 和最新的 JavaScript 版本。但它不是第一次使用 Node.js 的用户的最佳框架。
GitHub stars:13,022
GitHub contributors:92
10. Hapi
Node.js 的服务器框架。Hapi 是一个用来构建基于 Node.js 的应用和服务的富框架,使得开发者把重点放在便携可重用的应用逻辑而不是构建架构。内建输入验证、缓存、认证和其他 Web 应用开发常用的功能。
此框架是快速构建和 API 测试的理想选择,你也可以使用 Hapi 构建完整的网站。它有一个伟大的插件集合,使其能够在部分工作,而不破坏其余的代码库。十分适用于团队合作项目。
由于 Hapi 是由沃尔玛的开发人员创建,因此它提供了企业级功能。
GitHub stars:7,100
GitHub contributors:151
原文链接:https://my.oschina.net/hardbone/blog/809244
作者:开源中国 – 局长
转载必须在正文中标注并保留原文链接和作者等信息