什么是 MEAN 堆栈?

Jeffrey Erickson | 内容策略师 | 2024 年 5 月 22 日

所有 Web 应用都是使用一组工具和技术构建而成的。其中包括开发人员用来完成其项目的编程语言、框架、库、数据库、服务器和软件。每种技术处理应用程序的不同功能,并共同构成运行应用程序的系统的“堆栈”。其中一个常见的例子是 JavaScript 聚焦的技术集合,称为 MEAN 堆栈。

什么是 MEAN 堆栈?

MEAN 堆栈是通常用于构建 Web 应用程序的技术的组合。术语“MEAN”是源自堆栈的四个主要开源组件的首字母缩写:MongoDB、Express、AngularJS 和 Node.js。每个组件在构建应用程序时都起着不同的作用。

MEAN 堆栈的元素基于 JavaScript,或者在 MongoDB 的情况下,非常熟练地与 JavaScript 工具集成。这背离了使用一种语言用于后端,或服务器端,函数和另一种语言用于前端或客户端功能的良好路径。MEAN 堆栈及其同级 MERN 堆栈使用 JavaScript 来管理应用的所有主要功能,包括数据库、库、框架和应用服务器。这个特殊的工具集合使开发人员可以简化 Web 和移动应用的构建和维护,同时仍然可以获得一些流行的 Web 应用所需的稳定性和可扩展性。

MEAN 堆栈的可视化表示展示了组件及其功能。MEAN 代表 MongoDB、Express.js、AngularJS 和 Node.js。这种流行的技术堆栈通常用于构建 Web 应用程序。


MEAN 堆栈与 MERN 堆栈对比

MEAN 堆栈通常与 MERN 堆栈进行比较,后者是基于 JavaScript 的另一个重要技术集合。主要区别在于 MEAN 堆栈使用 AngularJS,而不是 MERN 堆栈使用 React 进行前端渲染。

AngularJS 的虚拟文档对象模型 (DOM) 和基于组件的方法在性能和代码可维护性方面具有优势。这使得它成为许多开发人员的首选,特别是那些在企业应用程序上工作的开发人员。相比之下,React 在 MERN 堆栈中使用,是一个 JavaScript 库,它为快速 Web 应用程序构建创建用户界面组件,并且主要用于较小的应用程序,尽管这种情况正在发生变化。在 Instagram 和 UberEats 等几个高流量网站的开发人员使用 MERN 平台。

一个经验法则是,如果应用程序稳定性是您的主要目标,MEAN 堆栈可能是一个更好的选择。如果应用性能和易于更新性是您的重点,可以选择 MERN 堆栈。仔细查看您的开发团队的技能集,以及您的应用用户的需求,应帮助您确定这些 JavaScript 堆栈中的任何一个是否适合您的项目。

关键要点

  • MEAN 堆栈是一组基于 JavaScript 的技术,用于构建 Web 和移动应用;它由 MongoDB、Express、AngularJS 和 Node.js 组成。
  • MEAN 堆栈使用单一语言 JavaScript 来简化应用开发和维护,适用于应用的前端和后端工作。
  • MEAN 堆栈已成功用于构建从简单静态网站到复杂动态应用程序的所有内容。

MEAN 堆栈说明

MEAN 堆栈是一个流行的 Web 开发技术堆栈。“MEAN”表示 MongoDB、Express、AngularJS 和 Node.js。这四个组件共同提供了用于开发现代高效 Web 应用程序的全栈解决方案。开发人员之所以选择 MEAN 堆栈,是因为它使用一种广为人知的语言 JavaScript 来开发整个应用程序。如果您知道 JavaScript 以及如何使用文档数据库,那么您就可以了解应用程序的后端和前端。

除了 MEAN 组件组合提供了一个全面而高效的框架之外,使用 JavaScript 进行客户端和服务器端开发意味着不同的编码器可以轻松处理应用程序的不同部分,而无需担心兼容性。

MEAN 堆栈的工作原理

MEAN 堆栈的工作原理是将 MongoDB、Express、AngularJS 和 Node.js 这四种常用技术组合为一个强大的 Web 开发框架。要创建可工作的 Web 应用程序,您需要一个数据库、一个应用服务器、一个 Web 界面和一个工具来对其进行编排。在 MEAN 堆栈中,每个组件都扮演这些角色之一。MongoDB 充当以灵活的 NoSQL 格式存储数据的数据库,可实现轻松的可扩展性和复杂的数据结构。Express 是 Node.js 的 Web 应用程序框架,简化了构建服务器端应用程序的过程。Node.js 是允许执行 JavaScript 代码的运行时环境,因此可以用单个编程语言进行开发。最后,AngularJS 通过创建动态和交互式用户界面来工作。这些技术协同工作,使开发人员能够高效地构建全栈应用程序。

每个应用程序在构建 Web 应用程序时都扮演着不同的角色。

MEAN 堆栈如何处理请求并使 Web 应用程序快速且可扩展的可视化表示。MEAN 代表 MongoDB、Express.js、AngularJS 和 Node.js。


MEAN Stack 是全栈解决方案吗?

MEAN 堆栈是一个全栈解决方案。这可能令人困惑,因为整个堆栈中的主要编程语言是 JavaScript,传统上它被认为是前端 Web 显示语言。但是,随着 Node.js(JavaScript 运行时环境)和 MongoDB(与 JavaScript 环境无缝集成的常用文档数据库)的日益普及,开发人员一直在使用 MEAN 堆栈进行全栈开发,将 JavaScript 作为服务器和客户端的单一主语言。

MEAN 堆栈组件

四个 MEAN 堆栈组件的组合为 Web 应用程序的开发提供了一个全面而高效的框架,因为它们使用单一的编程语言 JavaScript 来进行客户端和服务器端开发。

  • MongoDB 是面向文档的 NoSQL 数据库,以 JSON 格式存储数据,有助于与 JavaScript 无缝集成。这种灵活性使它特别适用于需要频繁数据更新或复杂数据结构的应用程序。有时,您会看到 MEAN 中的 "M"使用的是 MySQL,而不是 MongoDB。MySQL 是一个开源数据库,用于将数据组织在表和关系中,以便于管理和查找特定信息。在某些情况下,MySQL 可能比 MongoDB 快,特别是对于涉及一致事务或读取大量数据的任务。
  • Express 负责处理网站的后端功能和结构。它是 Node.js 的轻量级 Web 框架,可简化 API 创建过程。它提供了一系列丰富的功能,包括路由、中间件和错误处理,使开发人员能够构建可扩展和可维护的后端应用程序。
  • AngularJS 在浏览器上运行以向用户显示应用程序。然而,更重要的是,它是用于构建单页应用程序的应用程序设计框架和开发平台。这些应用程序加载单个网页,然后使用新信息动态更新页面。示例包括 Web 应用,例如电子邮件、地图和社交媒体馈送。
  • Node.js 是 JavaScript 运行时环境。它在服务器端执行 JavaScript 代码。这样就无需使用单独的前端和后端语言,从而简化开发过程并提高代码一致性。

MEAN 堆栈的优势

MEAN 堆栈允许开发人员使用一种非常流行的语言 JavaScript 来构建整个 Web 应用程序。在右侧,MEAN 堆栈可以简化开发和维护过程,从而带来好处,包括:

  • 简单易用。对于熟悉 JavaScript 的团队来说,构成 MEAN 堆栈的四种技术是常识性的选择。每个工具都相对容易学习,它们可以很好地协同工作。MEAN 堆栈已经存在多年,并且有许多学习资源可供查找。
  • 可扩展性。MEAN 堆栈可用于构建可以处理大量流量的应用程序。
  • 经济高效。MEAN 堆栈是开源和免费的,因此它是构建 Web 应用程序的一种经济高效的方式。没有前期许可费用,开源社区中有很多免费支持资源。
  • 通用性。MEAN 堆栈被用来构建简单的静态网站以及复杂的动态应用程序。

MEAN 堆栈的挑战

尽管它很受欢迎,但 MEAN 堆栈也有缺点。这些可能包括

  • 学习曲线。堆栈中的每项技术都需要时间来完成挂起。一个小团队可能不具备 MEAN 四个组件中每个组件的专家,对于具有简单功能或静态内容的网站来说,MEAN 可能太复杂了。
  • 脱机支持有限。MongoDB 和 Express 都是服务器端技术,这意味着它们需要可靠的互联网连接才能工作。对于需要离线使用的应用来说,MEAN 堆栈可能是一个糟糕的选择。
  • 性能。这可能是 MEAN 堆栈的问题;例如,MongoDB 可能是资源密集型的,Express 处理请求可能很慢。
  • 安全漏洞。与所有 Web 应用框架一样,数据安全也是 MEAN 堆栈的一个关注点。众所周知,MongoDB 存在安全漏洞,团队必须掌握可用的修复程序。
  • 供应商混乱。MongoDB、Express、Angular 和 Node.js 都是由不同组织开发的开源技术。我们无法保证它们将来会继续相互兼容。

如何开始使用 MEAN 堆栈

要开始 MEAN 堆栈开发,您需要了解 JavaScript。然后,按照以下步骤来准备您的环境并在云中部署。

  1. 确保您的计算机上安装了 Node.js 和 npm(Node.js 的软件包管理器)。Node.js 是 JavaScript 运行时环境,可让应用程序在 Web 浏览器之外执行 JavaScript 代码。
  2. 接下来,安装 MongoDB。这将是您的 NoSQL 数据库,用于存储和管理 JSON 文档格式的数据。对于构建主要使用业务应用程序结构化数据的应用程序,您可以使用另一个常用的开源“M”数据库 MySQL
  3. 您需要代码编辑器来帮助实现语法高亮、代码完成和调试功能。此作业的常用选项包括 Visual Studio Code、Sublime Text 或 Oracle Cloud Infrastructure (OCI) Cloud Editor
  4. 在这些工具就位后,继续安装 Angular CLI。Angular CLI 是一个命令行界面工具,允许开发人员构建动态和交互式用户界面。
  5. 安装 Express 应用程序生成器。此组件将为您提供使用 Node.js 和 Express 构建 Web 应用程序的预计划结构,从而帮助您快速构建应用程序。
  6. 如果您选择在公有云平台上部署应用,请找到符合您的需求和偏好的应用。这可能是 Amazon Web Services (AWS)、Microsoft Azure、OCI 或较小的提供商。超大规模提供商提供各种服务和功能。您需要创建账户、设置虚拟机或容器以及配置网络和安全设置。

MEAN 堆栈用例

MEAN 堆栈已受到开发人员的欢迎十多年。一个关键组件 AngularJS 最初被设想为构建可动态更新的单页 Web 应用程序的一种方式。这意味着 MEAN 堆栈擅长构建聚合和更新内容的网站,例如新闻,地图,基于 Web 的电子邮件和电子商务的网站。它已经证明自己足够稳定,可以用于大规模的银行和零售应用程序 - 事实上,PayPal 和 eBay 都在他们的 Web 应用程序中使用 MEAN 堆栈开发。像 Netflix 和 LinkedIn 这样的重量级用户还表示,他们使用 MEAN 堆栈构建 Web 应用程序。

MEAN 堆栈在多个用例中的表现尤为出色。其中包括

  • 需要实时数据更新和动态内容的单页应用程序 (SPA)
  • 社交网络平台、内容管理系统和协作工具,因为该堆栈允许无缝集成各种特性和功能
  • 电子商务平台,可以利用堆栈的高效处理大型数据集,并能够在业务增长时扩展应用

为什么选择 MEAN 堆栈?

开发人员之所以选择 MEAN 堆栈,是因为它擅长管理 Web 和移动应用项目。它使用单一语言 JavaScript 在整个应用中简化应用开发。例如,Node.js 和 AngularJS 使用 JSON 文件作为其数据交换格式。这与 MongoDB 构建的用于存储和管理的格式相同。因此,MEAN 堆栈系统中的数据传输过程非常简单且不间断。由于它由一系列开源技术组成,因此没有前期许可成本。MEAN 堆栈的普及意味着开发人员可以找到资源来补充和提高他们的技能。

2024 年的理想堆栈选择

在 2024 年选择堆栈时,您需要考虑其可扩展性、性能、安全性、成本、人才可用性以及目标消费者的优先事项。如果您的开发团队在高风险企业环境中具有全栈开发经验,MEAN 堆栈将成为 2024 年的坚实选择。

离开 Java,C++ 或其他已建立的后端语言可能具有挑战性,但 Instagram 和 UberEats 等大型网站以及 Walmart.com 的移动应用程序已经表明,这个简单而通用的基于 JavaScript 的平台可以完成这项工作。

它也是开源的,因此具有成本效益,它的受欢迎程度意味着你应该能够雇用可以介入和贡献的开发人员。

开发人员开始在 MERN 堆栈中使用 Oracle Database

开发人员可以在 MEAN 堆栈开发中使用 Oracle Database 来代替 MongoDB 。事实上,Oracle Database 23ai 附带 MongoDB API ,可实现无缝替代,并提供 23ai 的免费试用

MEAN 堆栈的另一个替代方案是使用 JavaScript API(使用 Node.js 或 Express 作为后端平台构建),并支持 AngularJS 或 Flutter 作为前端构建 Web 和移动应用。借助面向 Parse Platform 的 Oracle Database 适配器,这些 API 能够与 Oracle Database 19c 和 23ai 协同工作。Oracle Backend for Spring Boot and Microservices 中集成了 Parse 平台,您可以使用基于 Kubernetes 的后端平台来执行 Spring Boot 微服务和 JavaScript 全栈应用,将 DevOps 和 DataOps 整合在一起。

十多年来,需要使用开源技术以及一种流行的编程语言构建动态 Web 应用程序和网站的团队选择了 MEAN 堆栈。事实证明,基于 JavaScript 的 MongoDB、Express、AngularJS 和 Node.js 堆栈是一种快速、简单的方法,可以快速生成动态 Web 应用程序,同时实现一致性和可扩展性,以适应大型用户群。鉴于这些原因,MEAN 堆栈开发在未来十年内仍将继续流行。

开发人员及其业务同事都可以从基于自然语言提示生成代码的 GenAI 工具中受益。只需描述要创建的内容,然后让系统决定如何创建。了解云计算变得更加完善的另外 10 个方面。

MEAN 堆栈常见问题解答

MEAN 代表什么?

MEAN 是四种开源技术的首字母缩略词,通常结合在一起作为构建 Web 应用程序的技术堆栈。它们是 MongoDB、Express、AngularJS 和 Node.js。

什么是 MEAN 技术?

"MEAN" 指的不仅仅是一种技术。它是开源技术集合(MongoDB、Express、AngularJS 和 Node.js)的首字母缩略词,让开发人员能够使用一种流行的编程语言 JavaScript 来构建 Web 应用程序。

MEAN 是不是已经过时了?

开发人员在 MEAN 堆栈上构建和部署 Web 应用已有十多年。在那个时候,其他 JavaScript 开发堆栈(例如 MERN 堆栈)已经越来越受欢迎。也就是说,MEAN 堆栈是由不断发展和寻找新转换的开源工具组成的。MEAN 堆栈开发有望存在很长一段时间。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。