将 Angular 登录和注册表单与 MEAN Stack 中的后端连接

2025年3月17日 | 阅读 3 分钟

在上一节中,我们成功地在请求时创建了用户。现在,我们需要将我们的 Angular 表单与后端路由连接起来。我们将使用以下步骤将表单与后端连接:

1) 我们将返回到我们的注册组件,现在我们希望向后端发送一个请求来创建一个新用户。为此,我们将在 auth 文件夹中创建一个单独的 service.ts 文件。

Connecting angular login and signup form with backend in MEAN Stack

2) 在此文件中,我们将导出一个类,即 AuthService,在此之前,我们将添加 @Injectable,我们必须从 Angular 包中导入。在这个 @Injectable 中,我们将 providedIn 设置为 true,就像我们在 service.ts 文件中所做的那样。


Connecting angular login and signup form with backend in MEAN Stack

3) 在 AuthService 类中,我们将创建一个新方法,即 CreateUser。此方法将接受一个电子邮件(字符串)和一个密码(也是字符串)。


Connecting angular login and signup form with backend in MEAN Stack

4) 在此方法中,我们将发送一个 HTTP 请求,为此,我们需要像我们对 post 请求所做的那样,使用客户端注入我们的 http 客户端。


Connecting angular login and signup form with backend in MEAN Stack

5) 我们成功地注入了 http 客户端,现在在 CreateUser() 方法中,我们将发送请求。我们将使用 http 客户端来发送一个 post 请求,因为我们在后端接受 post 请求。


Connecting angular login and signup form with backend in MEAN Stack

6) 我们还需要向该请求附加一些数据。为此,我们将创建一个新模型,因此我们将创建一个新文件 auth-data.model.ts

Connecting angular login and signup form with backend in MEAN Stack

7) 在此文件中,我们将导出一个接口来定义我们的身份验证数据应该是什么样子。我们将这个接口命名为 AuthData,我们的身份验证数据将是一个电子邮件(字符串)和一个密码(也是字符串)。


Connecting angular login and signup form with backend in MEAN Stack

我们也可以创建一个用户模型,但是用户不应该始终在前端附加密码。我们不想在前端的任何地方长时间存储密码。因此,我们将使用 AuthData 将数据提交到后端,如果我们以后需要一个用户(我们确实需要),我们将添加一个单独的模型。

8) 对于 AuthService,我们现在可以基于该 AuthData 模型创建一个新对象。因此,我们将创建一个新的常量 authData,它的类型为 AuthData,并创建一个新对象,该对象需要有一个电子邮件和密码。现在,我们将该 authData 附加到请求中。


Connecting angular login and signup form with backend in MEAN Stack

9) 现在,我们也将返回结果或响应。我们将以以下方式发回响应:


Connecting angular login and signup form with backend in MEAN Stack

10) 现在,最后一件事是将该 auth 服务连接到我们的注册组件。我们已经在一个根级别上提供了它,所以剩下的就是要在这里注入它。我们将向注册组件添加构造函数,将其绑定到类型为 AuthService 的公共属性 authService。


Connecting angular login and signup form with backend in MEAN Stack

11) 现在,在 onSignup() 方法中,我们将发送该请求。首先,我们要确保我们得到一个电子邮件和密码,所以如果表单无效,我们将简单地编写返回语句;否则,我们将运行我们的 authService 类的 CreateUser() 方法,并将电子邮件和密码值传递给该函数,如下所示:


Connecting angular login and signup form with backend in MEAN Stack

现在,我们将保存所有文件并返回到我们的 Angular 应用程序。如果我们尝试注册用户,我们将在控制台中看到电子邮件和哈希密码。

Connecting angular login and signup form with backend in MEAN Stack

一切运行良好。现在,我们有了一种创建新用户的方法,下一步是利用这一点,能够让用户登录并让他们创建帖子,另一方面,我们要确保他们不能删除不是该用户创建的帖子。我们将在下一节中完成所有这些。


下一个主题SPA 身份验证