EN ZH ES AR FR RU
MEAN 堆栈开发

MEAN 堆栈开发

MEAN堆栈是一个基于JavaScript构建的用于构建Web应用程序的框架。MEAN是MongoDB、Express、Angular和NodeJS的首字母缩写。

组成堆栈各层的四项关键技术。

  • MongoDB - 文档数据库 MongoDB - 文档数据库
  • Express(.js) - 在Node.js上编写的Web框架
  • Angular(.js) – 用于客户端的JavaScript框架
  • Node.js 是世界上最流行的JavaScript Web服务器

MEAN堆栈有一些变体,包括MERN(用React.js替代Angular.js)和MEVN(用Vue.js替代Angular.js)。MEAN堆栈是Web应用程序开发中最广泛使用的技术理念之一。

如何实现MEAN堆栈?

MEAN堆栈的架构

MEAN架构旨在简化用JavaScript开发Web应用程序和管理JSON的过程。

MEAN 堆栈图

图片参考: https://www.mongodb.com/mean-stack

MEAN堆栈的组件

前端 Angular.js

Angular.js被称为"一个JavaScript MVW框架"(MVW代表"模型视图和其他任何内容"),位于MEAN堆栈的最顶端。

Angular.js使您能够向HTML标签添加元数据,允许您创建动态、交互式的在线体验,其功能远强于单独使用静态HTML和JavaScript(或jQuery)。

Angular具有前端JavaScript框架应有的所有功能,如表单验证、本地化和与后端应用程序的通信。

使用Express.js和Node.js的服务器层

Express.js是下一步,在Node.js服务器上运行。Express.js将自己标榜为"Node.js的快速、不可知和轻量级Web框架",这正是它的所在。

Express.js具有用于URL路由(将传入URL与服务器函数关联)和HTTP请求与响应处理的高级模型。您可以通过从Angular.js前端发送XML HTTP请求(XHRs)、GET或POST来连接到支持您的应用程序的Express.js函数。

这些方法反过来利用MongoDB的Node.js驱动程序来访问和更新MongoDB数据库中的数据,可以通过回调或Promise进行。

MongoDB数据库

如果您的应用程序保存数据(用户档案、内容、评论、上传或事件),您需要一个与Angular、Express或Node一样易于处理的数据库。

这就是MongoDB的用武之地:在Angular.js前端中编写的JSON文档可以传输到Express.js服务器,在那里可以处理它们,如果它们有效,可以立即保存在MongoDB中供以后检索。

同样,如果您想快速充分利用MongoDB,应该选择MongoDB Atlas。只需单击一下,您就可以获得内置的全面数据库安全性和跨云可扩展性。本页稍后将更详细地讨论这一点。

MEAN堆栈的优势

由于MEAN应用程序的跨平台、一次编写的特性,它们可以以多种方式使用。虽然MEAN非常适合实时应用程序,特别是那些在云中本地运行的应用程序和使用Angular.js开发的单页面(动态)Web应用程序,但它也可以用于多种其他目的,包括以下内容:

  • 工作流管理工具。
  • 汇集新闻的网站。
  • 待办事项和日历应用程序。
  • 交互式论坛。
  • 此外,还有更多内容。

由于所有组件都基于JavaScript和JSON构建,堆栈组件之间的交互简单易行。

此外,MEAN的E和A组件(Express和Angular)是用于后端和前端开发的两个最广泛使用和支持的JavaScript框架。Express简化了路由和处理HTTP请求和响应的过程,并对管理JSON端点和表单提交的中间件提供了出色的支持。Angular是一个非常有效的框架,用于开发与后端服务器连接的动态HTML网站。

无论是高吞吐量API、简单Web应用程序还是微服务,MEAN都是开发Node.js应用程序的最佳堆栈。

MEAN堆栈的所有组件都是开源的,为开发人员提供了一个广阔的、免费的机会。

MEAN堆栈的劣势

虽然JavaScript是一门优秀的现代语言,但它最初并不是为后端服务器开发而设计的。由于MEAN堆栈建立在JavaScript之上,包括后端服务器,由于JavaScript的性质,它可能在规模上经历并发和性能问题。

此外,由于开发机会如此之快,业务和服务器逻辑可能会因为业务和服务器逻辑的分离不充分而遭受困扰,导致意大利面条式代码和不良实践。

最后,虽然有许多指南和教程可用,但它们通常会排除此堆栈的具体JS代码规则。因此,在一个应用程序中运行良好的东西可能会在另一个应用程序中导致问题。

何时适合使用MEAN堆栈?

MEAN遵循标准的三层堆栈结构,包括表示层(Angular.js)、应用层(Express.js和Node.js)和数据库层(MongoDB)。

如果您正在开发JavaScript应用程序,特别是Node.js中的应用程序,应该认真考虑MEAN。

MongoDB以类JSON格式(BSON,二进制JSON扩展)存储数据,在JSON中定义MongoDB查询语言(MQL),并为其命令行界面(CLI)提供JavaScript解释器。MongoDB不仅是JavaScript/JSON数据存储,还具有高级功能,如索引和深入JSON文档的搜索、本地Node.js驱动程序,并为水平扩展而构建。使用MongoDB Atlas(MongoDB创始人的云原生数据库即服务)可以更轻松地构建云原生应用程序。

无论是高吞吐量API、简单Web应用程序还是微服务,MEAN都是开发Node.js应用程序的最佳堆栈。

将MEAN堆栈与MongoDB Atlas结合使用

MongoDB Node.js驱动程序简化并直观地将MongoDB集成到Node.js脚本中,节省了开发人员的时间并提高了他们的生产力。

之后,您需要一个MongoDB数据库。要开始使用MongoDB,最简单的选择是在MongoDB Atlas(MongoDB的完全托管、多云文档数据库即服务)中设置一个免费集群。

Atlas数据库易于设置和扩展,并提供统一的连接URI。请查阅官方MongoDB手册,了解有关如何连接到集群的信息。

在这个过程中,Atlas连接具有内置的用户名/密码身份验证和端到端TLS加密作为标准。此外,它使您能够快速使用其他MongoDB安全功能,如证书/IAM身份验证、LDAP、静态加密和审计。

此外,Atlas项目可以利用MongoDB Realm应用平台来集成各种身份验证提供程序,包括Google、Facebook、JWT和自定义身份验证。

Atlas易于扩展和管理;其主要价值在于保护和保护MEAN堆栈最有价值的层:数据层。

MEAN堆栈安全吗?

我们建议您将MEAN堆栈与MongoDB Atlas结合使用,因为Atlas具有内置凭证、防火墙和端到端加密,为保护您的MongoDB提供了最佳基础。

此外,MEAN堆栈具有独特的三层架构,当与行业最佳实践和适当的网络隔离相结合时,应该防止最终用户获得对业务逻辑以及更重要的是数据库层的访问权限。因此,您的应用程序在设计上旨在防止恶意用户行为将其置于危险中(查询注入、代码操纵、端口欺骗等)。

公司简介

推荐赚钱

立即请求报价

获取您的项目定制报价!