什么是 MEAN 堆栈?
了解 MongoDB、Express.js、AngularJS 和 Node.js 端到端组合为什么在现代 Web 应用开发中越来越受欢迎。
黑色和蓝色背景
什么是 MEAN 堆栈?

MEAN 是相对较新的堆栈,代表 MongoDB、Express.js、AngularJS 和 Node.js。 MEAN 是一个端到端的 JavaScript 堆栈,主要用于云就绪应用。 要想最大程度地利用 MEAN 在软件开发方面的价值,就需要了解为何可能会使用该堆栈,确定使用示例,并深入了解各个组件。

MEAN 堆栈的优势

从头开始构建应用时,使用统一的标准化软件栈至关重要。 利用一系列协作工具创建后端,可帮助缩短开发时间并简化资源。

但是,该堆栈领域变得越来越拥挤。 从 LAMP 到 Ruby on Rails,这里具有大量选项。 每个堆栈都有各自的优缺点,而且适用于不同的项目。 开发时使用的堆栈并不是一成不变的。

MEAN 是一种开源 Web 堆栈,主要用于创建云托管应用。 MEAN 堆栈应用非常灵活且易于扩展,是云托管的理想之选。 该堆栈包含自己的 Web 服务器,因此部署非常方便,并且可以按需扩展数据库,以便应对临时使用峰值。 MEAN 应用经过优化处理,能够充分利用云在成本节省和性能改进方面的所有优势。

JavaScript 长期以来一直是前端 Web 开发的常用语言 — 具有灵活、动态和易于使用的特点。 但它用于后端和数据库开发也有好几年的时间,支持开发人员使用端到端 JavaScript 创建应用。 由于 MEAN 的每个部分都使用相同的语言,因此有助于精简开发团队。 使用 MEAN 后,就不需要聘请不同的专家来开发应用的各个部分。 相反,可使用单一的 JavaScript 开发人员团队,根据需要随时随地开展工作,具备高度的适应能力。 JavaScript 的标准化还提供了在整个应用中复用代码的机会,从而减少了不必要的重复劳动。 

MEAN 堆栈用例

虽然 MEAN 堆栈不适用于所有应用,但它在许多用例中都表现出色。 可扩展性和并发用户管理能力,使其成为云原生应用开发的理想之选。 AngularJS 前端框架也使它成为单页应用(在单个页面上提供所有信息和功能)开发的理想之选。 下面是使用 MEAN 的几个示例:

  • 日历
  • 费用跟踪
  • 新闻汇总网站
  • 地图及位置发现
MEAN 堆栈组件

MongoDB
MongoDB 是开源 NoSQL 数据库,专为云应用而设计。 它使用面向对象的组织形式,而不是关系模型。

在 MEAN 堆栈中,MongoDB 用于存储应用的数据。 由于应用和数据库都使用 JavaScript,因此不需要在应用和数据库之间转换对象。 应用可在后端和数据库之间推送和拉取对象,而不会丢失信息。

MongoDB 因其存储和性能方面的可扩展性而受到热捧。 您可以将个别字段添加到数据库,而无需重新加载整个表。MongoDB 因其能够在不影响数据访问的情况下管理海量数据而知名。 只需点击几次,您就可以扩展数据库的可用资源,这使其非常适合那些活动偶有增加的应用。

如想深入了解 MongoDB,请参阅“ MongoDB:基本指南。”

Express
Express 是 Node.js 的 Web 应用框架。 它在易用性和完整功能集之间实现平衡。

Express 构成了 MEAN 堆栈的后端,负责处理前端与数据库之间的所有交互,确保数据顺利传输给最终用户。 它旨在与 Node.js 配合使用,确保在整个堆栈中以一致的方式持续使用 JavaScript。

Express 奉行极简主义 — 旨在高效处理流程,避免让应用显得杂乱无序。 但不要将“简约”与“简单”混为一谈。 Express 提供了出色的错误处理和模板功能,因此有助于您完成开发工作。

Express 还可以防止您意外出错,因为它使用 CommonJS 模块标准,这可防止无意中覆盖共享名称空间中的变量。 因此,您不会意外地重新定义先前创建的变量。 这种强制执行的 JavaScript 闭包功能有助于防止出现耗时且代价高昂的错误。

AngularJS
AngularJS 是 Google 的 JavaScript 前端框架,虽然它不是目前使用的唯一框架,但它非常受欢迎。 它实际上是前端 JavaScript 开发的默认选择。 如果您使用 JavaScript 开发 Web 应用,那么就会使用 AngularJS。

MEAN 堆栈中包含 AngularJS,可以帮助开发人员构建应用中面向用户的那部分功能。 由于后端、前端和数据库都基于 JavaScript,因此信息能够在应用的所有部分之间顺畅流动。

由于错误的认知,AngularJS 并没有成为最受欢迎的 JavaScript 前端框架。 它能够同时开发桌面和移动版本,具备调优的性能和易于使用的模板,这使它成为云原生应用构建的理想前端。

Node.js
Node.js 是开源 JavaScript 框架,可使用异步事件同时处理多个连接。 它是云端应用的理想框架,因为它可以根据需要轻松扩展请求。 在大多数最知名的 Web 应用背后,都可能找到 Node.js 的身影。

Node.js 是 MEAN 堆栈的主干。 Express 专为在 Node.js 上工作而构建,AngularJS 可与 Node.js 无缝连接,从而快速提供数据服务。 Node.js 与集成 Web 服务器配套,能够轻松地将 MongoDB 数据库和应用部署到云端。

Node.js 的最大优势在于其可扩展性。 云应用最理想的状态就是能够快速响应使用峰值。 如果仅在用户超时后才可用,那么几乎无限的处理能力又有何用呢? 通过扩展所需的资源,可以为更多用户提供服务,而框架的单线程架构支持应用在众多连接中有效地提供流畅的用户体验。 Node.js 可支持多达100 万个并发连接。

请记住,Node.js 最适用于低资源请求,而不适用于资源密集型请求。 尽管单线程可防止进程死锁,但它无法避免某个大型进程冻结面向所有客户端的系统。

相关解决方案
IBM 云原生平台

IBM Cloud 是云原生应用开发的领先者,也是值得信赖的合作伙伴,能够在安全的开放式集成平台上快速构建企业应用。

探索 IBM 云原生平台
IBM Cloud 基础架构

IBM Cloud 基础架构即服务是面向智慧企业的基础架构。 根据您的业务需求找到合适的解决方案。

探索 IBM Cloud 基础架构
采取下一步行动

探索面向云原生应用开发的高度安全且可扩展的云原生平台。过去 20 年来,IBM 一直大力投资开源、社区和监管领域,包括云原生计算基金会。目前正在生产和运行的 Kubernetes 集群超过 20000 个,IBM Cloud 无疑是最合适的平台。 IBM Cloud 提供最高行业标准的数据加密,并遵循 30 多个合规性计划。

探索 IBM 云原生平台