十个最适合 Web 和 APP 开发的 NodeJS 框架

简介:

在浏览器以外运行 JavaScript 对于 JavaScript 爱好者来说非常神奇,同时也肯定是 web 应用程序开发界最受欢迎的进步之一。全球各地的开发者张开双臂拥抱 NodeJS。

对于新手来说,Node.js 是 JavaScript 运行时,允许你在浏览器之外服务器上运行 JavaScript 代码。它是基于谷歌 Chrome 的 V8 虚拟机引擎建立的,V8 虚拟机引擎用于在 Chrome 浏览器中支持 JavaScript。

NodeJS 逐渐普及的步伐是因为它可以让你只使用 JavaScript 就可以建立大规模、实时性、可扩展的移动和 Web 应用程序。

随着节点生态系统的增长,框架也开始着手加快工作流程。有许多的 Node.js 框架,允许你构建实时的端到端网络应用,而无需任何其他第三方 Web 服务器、应用服务器、工具和技术。

通用性的 Node 框架就像快递,Koa 和 Hapi 更加灵活,让你做你想要的一切,最大限度的满足开发需求。但是,在最初你需要投入更多的努力,更加依靠开发者作出正确的决策。

而另一方面,像 Mean.io,Meteor, Derby 和 Mojito,有自己的标准结构和技术体系,灵活性较差。然而这些框架不会给开发者太多做错误决策的空间。

让我们来看看目前可用的最好、最强大的 NodeJS 框架,并帮助你建立实时的、各种规模和复杂性的可扩展 Web 应用程序 -

1. Node.js Express

对于一个已经在使用 node.js 的开发人员来说,Express 或者"node.js express"并不是一个新鲜事。Express 框架提供了对 node.js 原生 API 的比较好的封装,从而使开发者更加容易地使用node.js。

Express 框架提供了用来开发强壮的 web/移动应用,以及 API 的所有功能。并且开发人员还能够方便地为它开发插件和扩展,从而增加 Express 的能力。下面列出了一些 Express 提供的基本的功能:

  • 可以和任何的第三方数据库进行通讯
  • 可以使用任何的用户认证方式
  • 可以使用任何符合 Express 接口定义的模板引擎
  • 可以按照需要定义工程目录

通过使用 Node Express,你可以使用更少的代码来实现功能。至少通过使用 Node Express,你可以实现中间件来响应 http 请求,可以定义路由表来定义对不同请求的响应函数,还可以使用模板引擎来输出 html 页面。

对于一个 NodeJS 开发新手来说,Express 还提供了如下的好处:1)Express的学习曲线并不陡峭,可以很快上手;2)Express 有非常庞大的社区,和组织良好的文档,新手可以很容易得到所需要的一切。

Express 根据 MIT 协议进行开源,目前 StrongLoop 对它提供支持。

你可以通过 Express 的官方网站 expressjs.com 获得更多的信息。

2. Sails.js (node.js mvc)

Sails 作为一个非常稳固的 nodejs 框架,提供了建立任何规模的 web 应用所需要的所有功能功能。

Sails.js 在底层使用了 express框架来提供对 http 请求的处理,同时使用 Socket.IO 框架来处理WebSocket 请求。同时作为一个前端应用开发框架,它允许开发人员选择他/她熟悉的技术来开发应用。

同时 Sails.js 也通过 waterline 框架实现了 ORM 功能。通过这个功能,你的应用程序可以在不进行大的修改的前提下,就可以从一个后端数据库,切换到另外一个后端数据库(也可以是一个NoSQL数据库)。

Sails 特别适合用来开发对数据的实时更新有较高要求的应用,比如多人棋类游戏,单页web应用等等。如果你对 Ruby, Django 或者 Zend 有一定的了解,那么你将非常容易理解Sail中的概念。

简单来说,Sails.js 既给开发者提供了一个优秀的 MVC 框架,也提供了一定的灵活性,让开发者可以自主选择前端开发方式和后端的数据库。 Sails.js 是由 Mike McNeil 创建的,现在由 Treeline and balderdash 提供支持。Sails.js 在 MIT 协议下开源。

你可以在网站 sailsjs.org 上找到更多关于这个框架的内容。

3. KOA

KOA 是 node.js mvc 框架的后起之秀,在2013第四个季度才发布了第一个版本。开发 KOA 的人员基本来自 Express 开发团队,TJ Holowaychuk 是 KOA 开发团队的领导者。虽然 KOA 大部分开发人员来自 Express,但是他们使用了完全不同的技术来开发 KOA,并且 KOA 正成为 Express 一个强有力的竞争对手。

KOA 框架的核心是 ES6 的 generator。KOA 使用 generator 来实现中间件的流程控制,使用try/catch 来增强异常处理,同时在 KOA 框架中你再也看不到复杂的 callback 回调了。

KOA 框架本身非常小,只打包了一些必要的功能,但是它本身通过良好的模块化组织,让开发人员可以按照自己的想法来实现一个扩展性非常好的应用。

许多 JavaScript/Node.js 的忠实开发者都开始选择使用 KOA 来开发新的项目,因为 KOA 提供了更多的灵活性开发应用程序。

你可以通过koajs.com获取更多的信息。

4. Meteor

Meteor 框架是 Node.js 上最出色的全栈框架。项目在 GitHub 上有 28K+ 的赞,拥有大量的自定义包,庞大的社区支持,非常好的教程和文档。在这个领域 Meteor 毫无疑问是王者,你可以用它构建纯 Javascript 的实时 Web 和 手机应用。

Meteor 最优秀的部分是,无论是服务器端的数据库访问,商业逻辑实现,还是客户端的展示,所有的流程都是无缝连接,开箱即用。整个框架使用统一的 API,Meteor API 同时适用于客户端和服务器端。

它使用的 DDP 协议可以让你在后端连接简单的数据库服务、企业数据仓库、甚至 IOT 传感器。Meteor 带有自己默认的栈,但又有足够的灵活性,可以让你选择自己的技术方案。如果你不需要尝试其他的框架或者没有其他的条件限制,你可以直接使用默认配置,进行快速地应用开发。

Meteor 拥有专业化的开发团队,顶级风投的大量资金支持,这都让 Meteor 能够时刻保持业界领先。

你可以通过 meteor.com 网站进一步了解 Meteor。

5. Derby.js

Derby.JS 跟它的直接竞争对手 Meteor、Mean.io、以及 Mojito 一样,也是一个全栈框架。它运行在 Nodejs + mongo + Redis 的上层。Derby 主要部分是一个叫做 Racer 的数据同步引擎,它能够让数据在数据库、服务器和浏览器之间的同步变得轻而易举。

Racer 的确能够让基于 Derby 框架的应用运行地更快,无论是在浏览器端还是服务器端,对于单页面应用来说,它都是一个完美的选择方案。Derby 经常被用来和业界老大 Meteor 进行比较,Meteor 项目已经开发了一段很长时间,因而能够提供更多的开箱即用的功能,使得在更短时间内开发复杂的 web 应用变得更加容易。

而 Derby 更适合于需要更快运行速度的应用,并且它的模块化方式能够让应用更灵活,更容易扩展。Derby 最近的发展有些缓慢,但它并没有出局,仍有改写 Nodejs 全栈框架游戏规则的潜力。

你可以通过 derbyjs.com 网站进一步了解 Derby。

6. Flatiron.js (Node.js MVC 框架)

Flatiron 框架背后的核心思想是让你能使用它所提供的组件以及一些第三方库构建你自己的全栈框架。很酷不是吗?我个人十分的喜欢这种方式。然而,这带来的是更高的复杂度,并有可能会被使用错误组件的开发者搞得一团糟。

你能称之为一个由多个相互独立的组件松散地组建起来的全栈 MVC 框架。Flatiron 框架支持Director,一个从头到脚都使用JavaScript 搭建起来的,并不需要任何依赖项的 URL 路由组件。

通过一个叫 Plates 的模板引擎,Flatiron 能够支持模版语言,然而数据管理是通过 json 实现的,并能与任何一种数据库一起使用。Flatiron 现在由 Nodejitsu 以及其他的社区成员在进行维护,并做的相当不错,是一个不那么流行却值得一看的框架。

你能在 flatironjs.org 上获得更多信息。

7. Hapi

Hapi 是为数不多的不依赖于 Express 的 node.js 框架,现在甚至已经完全独立于 Express 了。在最近一段时间中,很多开发者选择了 Hapi 而非 Express,这使得它或多或少变为了 Express 的竞争对手。

Hapi 在众多 nodejs 的框架中并非一个老牌选手,然而它却成功的在这当中创造了自己的一个生态圈。Hapi 致力于完全的分离 node HTTP 服务器、路由以及业务逻辑,并更多的聚焦于如何尽可能的通过配置而非代码来控制东西。

Hapi 最初是由 Eran Hammer 以及在 Walmart labs 的团队为了工作需要开发的。其后便以极快的速度受到了欢迎,现在已在 MIT 许可下成为一个开源的框架,能够免费的被下载和使用。

迪士尼、雅虎、Pebble、beats 音乐以及 Walmart 这样的公司都在使用 HAPI 作为他们旗下一个或多个项目的网络应用框架,它的影响力便可见一斑了。

你能在 hapijs.com上找到更多关于 Hapi 的信息。

8. Mean.IO

Mean 是 Mongo DB,Express,Angular 和 Node.js 捆绑在一起的组合。基本上说只要有它,你就拥有了数据库层,服务器端和网页前端的整套工具,足以开发所有类型的现代网络应用。

Mean 是一个完整独立的包,它涵盖了应用开发的所有方面。尤其适合于那些需要快速开始开发的人。它内置多种技术而且在联合使用时变现非常好。可以用于创建任意大小和复杂度的应用。

使用 Mean,开发者可以避免经历混合和匹配不同的技术栈。通过 mean 栈,你可以减少安装和配置MongoDB,Express,Angular 和 Node.js需要的时间。Mean.io 的另一个巨大好处就是所有的栈都使用 JavaScript,服务器端 Express 对MongoDB 的访问(json)和通多 Angular 从 Node 到客户端。

在这里 - mean.io了解更多Mean.io的相关信息。

还有一个名为 mean.js 的 mean 分支也相当流行。

9. Mojito

Mojito 由 Yahoo 开发并迅速取得成功。然而很快又带着关于框架的空前的成功坐到了冷板凳,就像Meteor 和 Mean stack 那样。

Mojito 同样是一个 MVC 应用框架,非常适合于创建使用 HTML5,JavaScript 和 CSS3 的高性能的网络和手机应用。Mojito 的根本目标是提供一个框架,该框架用于构建标准的基于跨平台的应用。使之可以同时运行在客户端和服务器端,并实现高性能。

你可以在 Yahoo 开发者网页—— mojito 获得更多信息。

10. Socket Stream

SocketStream 是一个有趣的框架,专注于客户端和服务端数据的快速同步,它致力于前后端数据的实时更新。

它最大的特点是不严格要求你使用指定的客户端技术,也不限定数据库的 ORM。我趋向于将它和有同样功能的兄弟项目 Sail.js 做比较,它更适合做单页 web 应用,多用户游戏,聊天客户端,网络应用,交易平台以及所有的需要将数据从服务端实时推送到客户端的应用。

服务端和客户端使用 JSON 来传输数据,比较理想的是使用 websockets 在服务端事件发生时自动将数据推送到客户端,Socket stream 是由 Owen Barnes 创建,现在由 Paul Jensen 和团队维护,他们的工作让这个框架得到了应有的荣耀。

SocketStream framework 在最近几月获得了很好的发展,未来一片光明。

更多 SocketStream 信息请浏览 github 上的 - socketstream。

其它类似优秀框架还有:total.js, Geddy.JS, Locomotive, compound 和 Res

结论

Web 和应用开发的风景变化是非常快速的,开发人员转向快速框架和清洁项目交付(clean project delivery)。使用 node 框架的最大优势是提供了高层级结构的盒子,你可以关注扩展您的应用程序而不是努力在建设上支出。

框架提供了多样的特性,工作在不同的底层,试图解决构建实时的常见问题,并解决了可伸缩的和复杂的 Web 应用程序在速度上的问题。在这篇文章里讨论的框架是当今市场上最好的 node.js 框架。

请留下评论让我们知道你对 node 框架的使用体会。

文章转载自 开源中国社区[https://www.oschina.net]

相关文章
|
1月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
143 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
6天前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
98 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
2天前
|
人工智能 JSON 小程序
【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。
|
1月前
|
安全 API Swift
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
112 15
如何在苹果内购开发中获取App Store Connect API密钥-共享密钥理解内购安全-优雅草卓伊凡
|
28天前
|
Web App开发 编解码 算法
布谷一对一直播源码开发:阿里云视频语音通话社交交友App的必备功能
在当今移动社交领域,一对一视频和语音通话功能已成为用户期待的基础配置。从熟人社交到陌生人交友,从专业咨询到情感陪伴,实时音视频互动能力直接决定了社交App的用户留存和市场竞争力。山东布谷科技将深入探讨一对一直播源码开发高质量一对一视频和语音通话功能的关键要素和技术实现方案。
布谷一对一直播源码开发:阿里云视频语音通话社交交友App的必备功能
|
21天前
|
人工智能 小程序 API
【一步步开发AI运动APP】四、使用相机组件抽帧
本文介绍了如何使用`ai-camera`组件开发AI运动APP,助力开发者深耕AI运动领域。`ai-camera`是专为AI运动场景设计的相机组件,支持多平台,提供更强的抽帧处理能力和API。文章详细讲解了获取相机上下文、执行抽帧操作以及将帧保存到相册的功能实现,并附有代码示例。无论是AI运动APP还是其他场景,该组件都能满足预览、拍照、抽帧等需求。下篇将聚焦人体识别检测,敬请期待!
|
14天前
|
人工智能 开发框架 小程序
工会成立100周年纪念,开发职工健身AI运动小程序、APP方案推荐
为庆祝中华全国总工会成立100周年,特推出基于AI技术的智能健身系统,以小程序和APP形式呈现,助力职工健康生活。方案包括:1) 小程序插件,支持多种运动识别,开箱即用;2) APP插件,提供更高精度的运动检测;3) 成熟的「AI乐运动」系统,支持赛事活动管理。这些方案满足不同需求,推动全民健身体验升级,彰显工会对职工健康的关怀。
|
17天前
|
人工智能 小程序 开发者
【一步步开发AI运动APP】六、运动计时计数能调用
本文章介绍了如何通过【一步步开发AI运动APP】系列博文,利用uniAPP插件开发高性能的AI运动应用。文中详细说明了创建运动分析器、进行运动分析、监听计数变化以及停止/重置分析等功能实现步骤。插件内置多种常见运动(如跳绳、俯卧撑等),支持自定义扩展,满足健身、体测等场景需求。示例代码展示了人体检测、运动计时计数及UI更新的完整流程,帮助开发者快速上手并深耕AI运动领域。
|
12天前
|
缓存 开发工具 开发者
鸿蒙NEXT开发App相关工具类(ArkTs)
这段代码展示了一个名为鸿蒙NEXT开发 `AppUtil` 的工具类,主要用于管理鸿蒙应用的上下文、窗口、状态栏、导航栏等配置。它提供了多种功能,例如设置灰阶模式、颜色模式、字体类型、屏幕亮度、窗口属性等,并支持获取应用包信息(如版本号、包名等)。该工具类需在 UIAbility 的 `onWindowStageCreate` 方法中初始化,以便缓存全局变量。代码由鸿蒙布道师编写,适用于鸿蒙系统应用开发,帮助开发者更便捷地管理和配置应用界面及系统属性。
|
20天前
|
人工智能 小程序 API
【一步步开发AI运动APP】五、人体检测能力调用
本文介绍如何开发性能更强、体验更优的AI运动APP,涵盖人体检测、实例创建、检测识别、骨骼图绘制及完整代码实现。通过API `createHumanDetector`,可灵活配置高性能、高精度或多人检测模式,省去模型部署麻烦。检测结果可通过`yz-pose-grapher`组件高效渲染骨骼图。最后提醒使用完毕需调用`destroy()`释放资源,下篇将聚焦运动检测分析,敬请期待!

热门文章

最新文章