公告推出 MongoDB 8.0,有史以来最快的 MongoDB!阅读更多 >>推出 MongoDB 8.0,有史以来最快的 MongoDB!>>

Angular与MongoDB

Angular是一个JavaScript开发平台,通常用于构建Web应用程序。无论它们的用途如何,大多数现代应用程序都涉及数据。数据被存储在数据库中,如MongoDB,并从中检索。

在这篇文章中,我们将探讨使用Angular和MongoDB构建应用程序的两种不同架构

  • 客户端-服务器架构
  • 无服务器架构

什么是Angular?

我们将从三个不同的角度来定义Angular(无意中打趣)。

我能用Angular构建什么应用程序?

Angular是平台无关的——它不仅限于浏览器。唯一的要求是Angular必须由JavaScript引擎执行。这种灵活性使我们能够用Angular构建不同类型的应用程序

  • 动态网站:这是Angular的默认行为,也是大多数人使用它的原因。
  • 静态网站:在服务器上,Angular应用程序可以被编译为静态HTML文件。然后,这些HTML文件被发送到客户端并由浏览器渲染。这种称为服务器端渲染的技术可以改善加载性能和SEO(搜索引擎优化)。
  • 移动应用程序:第三方框架,如NativeScript和Ionic,允许您使用Angular构建跨平台的Android和iOS移动应用程序。

Angular使用哪种语言?

Angular是用TypeScript构建的。更有甚者,您使用TypeScript构建Angular应用程序和库。

TypeScript 是 JavaScript 的超集,在 JavaScript 已经拥有的每个功能之上添加了类型系统。如果你是 JavaScript 开发者,你已经非常接近了!学习 TypeScript 并不会感觉像是学习一门全新的语言。如果你来自静态类型语言,你很可能在学习 TypeScript 而不是 JavaScript 的时候会感到更加舒适。

谁创建了 Angular?

Angular 是由 Google 构建并发布的。该项目由 Google 的一个专门团队及其社区领导。Angular 是免费且开源的。

Angular 与 AngularJS 之间的区别是什么?

AngularJS 是 Google 于 2010 年发布的一个用于构建 Web 应用的框架。Angular 是由 Google 同一团队重写的 AngularJS,是一个全新的版本。AngularJS 有时被称为 Angular 1,而 Angular 被称为 Angular 2+。然而,这两个项目的官方名称分别是 AngularJS 和 Angular。

Angular 的发布遵循 语义化版本控制 标准。根据该标准,只有在新的大版本中才会发布重要的新功能。这就是为什么 Angular 的大版本通过它们的版本号的第一位数字来区分,例如 Angular 4、Angular 11、Angular 12 等等。

以下是一些重要的要点

  • Angular 与 AngularJS 完全不同的框架。
  • Angular 的各个主要版本之间的变化,例如 Angular 11 和 Angular 12 之间的变化,主要是基于上一个版本的改进和新功能。

Angular 的好处有哪些?

可用性

Angular 内置了创建现代 Web 应用所需的一切包。从表单和动画,到无障碍访问和国际化,再到测试,Angular 都有相应的解决方案。内置的包由 Google 的 Angular 团队维护,这保证了支持和一致性。

可重用性

Angular 应用程序使用组件构建。每个组件代表屏幕的一部分。组件可以有多个实例。因此,它们可以在应用程序的多个部分中使用。它们也可以打包成库,并跨不同的应用程序分发,从而使其高度可重用。

跨平台

Angular 可以用于创建 Web 应用程序和原生移动应用程序。

MongoDB 支持 Angular 吗?

简而言之,是的,你可以使用 MongoDB 与 Angular 一起构建现代 Web 和移动应用程序。

你可以采取多种不同的路径来实现这一点。在下面的部分中,我们将探讨其中两个:客户端-服务器架构和无服务器架构。

客户端-服务器架构

传统的客户端-服务器软件架构将系统实现分为客户端和服务器。

客户端允许用户请求、查看和交互数据。客户端可以是网页浏览器、原生移动应用程序,甚至是桌面应用程序。

另一方面,服务器处理客户端的请求,并从数据库存储和检索数据。

MEAN 框架 是一个基于 JavaScript 的技术栈,实现了客户端-服务器架构。让我们来探讨 Angular 在 MEAN 框架中扮演的角色。

Angular 在 MEAN 框架中

构建 MEAN 框架的技术是 MongoDB、Express、Angular 和 Node.js。Angular 用于构建应用程序的客户端。正如我们之前所看到的,这可以是静态或动态网站,甚至是移动应用程序。

Node.js和Express是负责实现应用服务器端的技术。客户端和服务器之间的通信协议是HTTP。

数据访问层由MongoDB NodeJS驱动程序实现。服务器使用驱动程序从MongoDB数据库存储和检索数据。数据库可以托管在同一物理服务器上或云中,使用MongoDB Atlas

使用Atlas App Services的无服务器架构

无服务器架构是一种软件开发模式,它将第三方云平台整合进来以管理服务器端代码。

无服务器架构为传统的客户端-服务器模型提供了替代方案。您无需实现和托管自己的服务器,而是将服务器端逻辑上传到云中的“无服务器”平台。虽然仍然有一个服务器托管您的代码,但您将管理任务委托给无服务器平台。

函数即服务(FaaS)是无服务器架构的一个类别。使用FaaS,您将函数部署到无服务器平台,然后从您的客户端应用程序调用这些函数。

例如,您不必构建Node.js服务器,而是可以通过将MongoDB数据库的通信抽象化到MongoDB Atlas Functions中来实现与MongoDB数据库的通信。然后,您可以从您的Angular应用程序中调用这些函数。

这些函数是您应用程序架构中的服务器端逻辑。采用这种方法,您可以节省构建和维护服务器的时间和精力。

Client-server architecture versus Serverless architecture

总结

在本文中,我们探讨了在Angular和MongoDB应用开发背景下,客户端-服务器架构和无服务器架构。

传统的客户端-服务器方法需要您管理整个软件系统生命周期中的服务器,从设置、扩展和维护。

转向无服务器的优点是提高了生产效率、自动扩展服务器以及降低成本。

如果您想了解更多关于Angular和Atlas App Services的无服务器架构,请查看针对Web开发者的Atlas App Services简介

常见问题解答

Angular能否连接到数据库?

您可以直接从您的Angular客户端应用程序连接到数据库。然而,在软件架构中,实现专门的数据库通信服务器端代码被视为更好的实践。这可以通过实现客户端-服务器架构或无服务器架构来实现。

哪个数据库最适合Angular?

为项目选择数据库是一个必须考虑比客户端应用程序平台更多的决定的决策。一种方法是实现一个具有庞大社区的热门技术堆栈,例如使用MongoDB作为数据库层的MEAN堆栈。

Angular和Node如何协同工作?

Angular是一种客户端技术,Node是一种服务器端技术。HTTP是Web应用程序中客户端-服务器通信的通用协议。