What is MEAN?
来自 Maximilian Schwarzmüller 的免费视频教程
AWS certified, Professional Web Developer and Instructor
70 门课程
3793009 名学生
讲座描述
What does "MEAN" stand for? Let's explore the different pieces (MongoDB, Express, Angular & Node.js) that make up the MEAN stack and let's see WHY we combine them.
通过完整课程学习更多知识
Angular & NodeJS - The MEAN Stack Guide
Learn how to connect your Angular Frontend to a NodeJS & Express & MongoDB Backend by building a real Application
12:39:59的随选视频 • 更新于 October 2025
Build real Angular + NodeJS applications
Understand how Angular works and how it interacts with Backends
Connect any Angular Frontend with a NodeJS Backend
Use MongoDB with Mongoose to interact with Data on the Backend
Use ExpressJS as a NodeJS Framework
Provide a great user experience by using Optimistic Updating on the Frontend
Improve any Angular (+ NodeJS) application by adding Error Handling
简体中文 [自动]
- -那么, “意思”代表什么呢? 我们将在本课程中学习哪些不同的组件? Mean由四种技术组成, 这就是它的含义。 M代表MongoDB, 它是本课程中将使用的数据库。 因此, 我们将能够持久保存应用程序用户生成的数据, 如用户数据本身, 以及他们发送的帖子或消息等。 E代表express和express, 没有N就很难理解js。 所以让我们快速快进。 我们还得到了A和A代表角度。 现在, 我将回到N, 它与E相关, 但Angular是我们的客户端技术。 它是一个JavaScript框架, 我们将使用它来为用户呈现一个漂亮的动态UI用户界面。 它完全在浏览器中运行, 而不是在服务器上, 因此它实际上只有一个工作, 即提供一个漂亮、 愉快的交互式和反应式用户界面。 那么N是多少? 好吧, 你可能已经发现少了点什么。 我们有一个数据库, 浏览器中有一些东西在运行, 但我们当然还需要在服务器上运行一些逻辑。 例如, 对用户进行身份验证。 这不是我们可以在浏览器中做的事情, 因为首先, 浏览器代码很容易被黑客攻击或更改, 其次, 它太复杂了。 它会占用大量资源, 并降低前端用户界面的速度, N代表节点js, 这是JavaScript运行时, 服务器端语言将在本课程中用于服务器端代码。 因此, 对于在服务器上运行的核心业务逻辑, 现在E与之相关, 因为虽然node js是我们将在服务器上使用的语言, 但express是node js的框架, 它使使用它更容易。 您不需要express JS本身, 但它使使用它变得更容易, 就像Angular是浏览器中JavaScript的框架一样。 你不需要它, 但它使事情更容易。 但让我们更详细地看看所有这些东西。 现在我们先来看看Angular。 正如我已经说过的, Angular在浏览器中的客户端运行。 它是基于JavaScript或使用JavaScript构建的框架, 用于创建所谓的单页应用程序。 这实质上意味着它处理整个前端逻辑。 所以你的用户将要看到的一切都是Angular负责的, 但是我过几秒钟再回来。 Angulas的工作是用动态数据渲染用户界面。 动态数据部分很重要。 当然, 它的工作不仅仅是呈现一些静态HTML和一些CSS。 我们不需要JavaScript。 它的工作是更新UI。 每当我们有新的信息, 比如说, 当你创建了一个新的职位, 我们希望立即更新UI, 以显示新的职位。 它还负责处理用户输入, 从而验证用户输入并将其发送到服务器, 因为这是它所做的第三部分。 它与我们的后端通信。 因此, 这个节点表达Mongo组合似乎负责。 Angular提供了一个类似移动应用程序的用户体验, 因为我们通过JavaScript处理浏览器中的所有内容, 我们永远不需要重新加载页面。 我们只是通过Angular用JavaScript更改了页面的一部分, 因此一切都以一种非常被动的方式立即发生。 这就是我们从移动应用程序中了解到的感觉。 现在, 这仍然只是前端, 正如我所说的, 节点JS是我们将用于后端的语言。 在服务器端, 我们都在本课程中构建节点JS是一个服务器端库, JavaScript运行时, 您知道JavaScript可以在浏览器中运行, 而节点js只是添加了一些在服务器上有用的东西, 如处理文件、 处理http请求, 现在我们也可以在服务器上使用JavaScript。 非常令人惊讶的是, node js监听传入的请求, 并且能够发回响应。 例如, 我们的Angular应用程序可以发送一个请求, 以获取所有帖子的列表, 节点可以处理它的请求, 做一些事情, 接触到数据库, 并发送回一个包含所有这些帖子的响应。 节点js通常执行服务器端逻辑。 因此, 身份验证, 任何我们出于安全或性能原因不希望在浏览器中运行的内容。 并且节点JS能够与数据库和文件交互。 有角度的人不能这样做。 它不能访问任何文件系统, 尤其是不能访问服务器上某台远程计算机上的文件系统。 虽然理论上你可以从Angular连接到一个数据库, 因为你所有的客户端JavaScript代码对用户都是可见的, 但你可以在浏览器的开发工具中查看它。 在那里连接数据库是非常不安全的, 因为这样会暴露所有的凭据和一切。 你不会想这么做的。 因此, node js是PHP的替代品(如果您知道的话), 或者Ruby on Rails, asp。 net之类的东西。 而且它很少单独使用, 就像这些语言一样。 您通常会使用一个框架, 而且您通常使用框架是Express。 Express是一个节点JS框架。 所以它仍然使用node js, 同样的语言, 但是它增加了很多实用功能。 因此, 它提供了额外的功能, 或者总的来说, 它使事情变得更容易。 Express JS是基于中间件的, 一旦我们深入到代码中, 我们将看到这意味着什么。 它基本上通过一系列中间件的步骤来过滤传入的请求, 在这些步骤中, 我们可以对请求进行处理, 从中读取一些数据, 操作它, 检查用户是否经过身份验证, 或者基本上立即发回响应。 这条链允许我们编写非常结构化的代码, 你们将在本课程中学习到关于它的一切。 最后, 但至少它包括路由, 这意味着我们可以渲染视图。 所以HTML页面用它。 但我们在本课程中不会这样做, 因为Angular应该处理我们的整个前端。 再说一次, 这些都是我们将要看到的。 但更重要的是, 我们可以处理对不同端点的不同请求, 这对于将Angular连接到后端非常重要, 因为如果我们想获取一个帖子列表, 我们想向/posts发送一些请求。 因此, 我们的域/帖子, 如果我们想创建一个新帖子, 我们想发送一个不同的请求到我们的域/帖子, 例如。 而express JS允许我们实现这种路由逻辑, 以便正确处理对不同URL的不同请求。 同样, 这些都将在整个课程中逐步实施。 所以总结一下, express JS简化了no js的使用。 这是一个我们肯定要使用的工具。 如果你有PHP背景, 例如你可以把它和Laravel for PHP进行比较, 这会让事情变得更容易。 缺少一个东西, 那就是MongoDB。 当然, MongoDB, 正如我已经说过的, 是一个数据库。 确切地说, 它是一个noSQL数据库, 它将所谓的文档存储在所谓的集合中。 你们可能听说过SQL数据库, 比如我的SQL, Microsoft SQL, 其中有记录行, 这些记录行存储在表中。 现在, noSQL的逻辑与SQL数据库不同, 但总的来说, 它仍然是一个数据库。 因此, 您可以将应用程序数据存储在服务器上, 以便在用户重新加载页面、 离开页面等过程中保持数据。 因此, 任何不只是临时数据的数据都必须存储在这样的数据库中。 现在, noSQL意味着这种数据库不强制使用模式。 因此, 您可以在同一个表或集合中拥有包含不同信息的不同文档, 正如这里所称的那样。 而且它也不适用于关系。 在本课程中, 您将看到, 我们可以将不同的文档彼此关联起来, 但一般而言, 它在关系方面的严格性和灵活性都不如SQL数据库。 noSQL数据库更多的是存储多个非结构化文档, 不过您也可以在其中加入一些结构, 我们将在本课程中实际执行这些操作。 我将在相应的章节中回到MongoDB到底是什么以及它是如何工作的。 别担心。 最后但并非最不重要的一点是, 它可以轻松连接到Node。 那很酷。 它非常容易集成或节点表达, 以更精确, 我们没有连接到角度。 我已经说过了 从理论上讲, 您可以找到一种方法, 但您不想这样做, 因为您不想在浏览器站点代码中暴露您的数据库凭据, 这样用户就可以轻松查看。 它可以在浏览器的开发者工具中访问。 因此MongoDB是一个功能强大的数据库, 可以很容易地集成到节点表达环境中。 它现在非常流行, 因为它非常灵活, 而且高度可扩展。 它能够处理大量的吞吐量。 每秒请求数或每秒写入操作数和每秒读取操作数, 我们将在开始使用它的部分中对此进行更深入的探讨。 现在, 理论上您可以将其替换为不同的数据库。 您也可以在Node Express Angular应用程序中使用SQL数据库。 你并不局限于MongoDB, 只是想真正强调这一点。 我之所以使用MongoDB, 是因为它是这种流行的方法堆栈的一部分, 它有一些优点, 但取决于应用程序和您存储的数据类型, 如果数据具有许多关系, SQL数据库可能更好。 虽然我们将在讨论中使用MongoDB, 但我只是想强调这不是必须的。 您可以使用这里的任何数据库。 核心逻辑将潜入角和节点的现实连接。 因此, 让我快速回到单页应用程序的确切含义, 以及在我们开始深入课程设置并开始构建我们的平均应用程序之前, 这样一个平均应用程序的总体情况是什么。