在这篇文章中,我们将探讨使用Angular和MongoDB构建应用程序的两种不同架构
我们将从三个不同的角度来定义Angular(无意中打趣)。
Angular是平台无关的——它不仅限于浏览器。唯一的要求是Angular必须由JavaScript引擎执行。这种灵活性使我们能够用Angular构建不同类型的应用程序
Angular是用TypeScript构建的。更有甚者,您使用TypeScript构建Angular应用程序和库。
TypeScript 是 JavaScript 的超集,在 JavaScript 已经拥有的每个功能之上添加了类型系统。如果你是 JavaScript 开发者,你已经非常接近了!学习 TypeScript 并不会感觉像是学习一门全新的语言。如果你来自静态类型语言,你很可能在学习 TypeScript 而不是 JavaScript 的时候会感到更加舒适。
Angular 是由 Google 构建并发布的。该项目由 Google 的一个专门团队及其社区领导。Angular 是免费且开源的。
AngularJS 是 Google 于 2010 年发布的一个用于构建 Web 应用的框架。Angular 是由 Google 同一团队重写的 AngularJS,是一个全新的版本。AngularJS 有时被称为 Angular 1,而 Angular 被称为 Angular 2+。然而,这两个项目的官方名称分别是 AngularJS 和 Angular。
Angular 的发布遵循 语义化版本控制 标准。根据该标准,只有在新的大版本中才会发布重要的新功能。这就是为什么 Angular 的大版本通过它们的版本号的第一位数字来区分,例如 Angular 4、Angular 11、Angular 12 等等。
以下是一些重要的要点
Angular 内置了创建现代 Web 应用所需的一切包。从表单和动画,到无障碍访问和国际化,再到测试,Angular 都有相应的解决方案。内置的包由 Google 的 Angular 团队维护,这保证了支持和一致性。
Angular 应用程序使用组件构建。每个组件代表屏幕的一部分。组件可以有多个实例。因此,它们可以在应用程序的多个部分中使用。它们也可以打包成库,并跨不同的应用程序分发,从而使其高度可重用。
Angular 可以用于创建 Web 应用程序和原生移动应用程序。
简而言之,是的,你可以使用 MongoDB 与 Angular 一起构建现代 Web 和移动应用程序。
你可以采取多种不同的路径来实现这一点。在下面的部分中,我们将探讨其中两个:客户端-服务器架构和无服务器架构。
传统的客户端-服务器软件架构将系统实现分为客户端和服务器。
客户端允许用户请求、查看和交互数据。客户端可以是网页浏览器、原生移动应用程序,甚至是桌面应用程序。
另一方面,服务器处理客户端的请求,并从数据库存储和检索数据。
MEAN 框架 是一个基于 JavaScript 的技术栈,实现了客户端-服务器架构。让我们来探讨 Angular 在 MEAN 框架中扮演的角色。
构建 MEAN 框架的技术是 MongoDB、Express、Angular 和 Node.js。Angular 用于构建应用程序的客户端。正如我们之前所看到的,这可以是静态或动态网站,甚至是移动应用程序。
Node.js和Express是负责实现应用服务器端的技术。客户端和服务器之间的通信协议是HTTP。
数据访问层由MongoDB NodeJS驱动程序实现。服务器使用驱动程序从MongoDB数据库存储和检索数据。数据库可以托管在同一物理服务器上或云中,使用MongoDB Atlas。
无服务器架构是一种软件开发模式,它将第三方云平台整合进来以管理服务器端代码。
无服务器架构为传统的客户端-服务器模型提供了替代方案。您无需实现和托管自己的服务器,而是将服务器端逻辑上传到云中的“无服务器”平台。虽然仍然有一个服务器托管您的代码,但您将管理任务委托给无服务器平台。
函数即服务(FaaS)是无服务器架构的一个类别。使用FaaS,您将函数部署到无服务器平台,然后从您的客户端应用程序调用这些函数。
例如,您不必构建Node.js服务器,而是可以通过将MongoDB数据库的通信抽象化到MongoDB Atlas Functions中来实现与MongoDB数据库的通信。然后,您可以从您的Angular应用程序中调用这些函数。
这些函数是您应用程序架构中的服务器端逻辑。采用这种方法,您可以节省构建和维护服务器的时间和精力。
在本文中,我们探讨了在Angular和MongoDB应用开发背景下,客户端-服务器架构和无服务器架构。
传统的客户端-服务器方法需要您管理整个软件系统生命周期中的服务器,从设置、扩展和维护。
转向无服务器的优点是提高了生产效率、自动扩展服务器以及降低成本。
如果您想了解更多关于Angular和Atlas App Services的无服务器架构,请查看针对Web开发者的Atlas App Services简介。