在 MEAN Stack 中为登录和注册创建后端路由和用户模型

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

我们之前的章节成功设计了登录和注册页面,但我们没有为它们实现后端。因此,在本节中,我们将实现后端来创建用户或让用户登录。以下是我们创建后端将使用的步骤。

1) 在路由文件夹中,我们有用于帖子的 js 文件。因此,我们将为我们的用户创建另一个 javascript 文件,并将其命名为 user.js

Creating Backend Routes and User Model for Login and Signup in MEAN Stack

2) 我们将导入我们的 express 并创建路由器,就像我们在 posts.js 文件中实现的那样。创建路由器后,我们还将在代码的最底部导出它,就像这样


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

3) 现在,我们将注册路由,并且我们现在想要有两个路由,或者更准确地说是两个 post 路由。我们的第一个 post 路由将处理所有发送到 api/user/signup 的请求。


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

在我们的 post 路由中,我们只传递了 "/signup,",为了确保我们在它前面有 api/user,我们将转到 app.js 文件,我们在其中导入了我们的帖子路由,并像这样实现我们的用户路由


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

4) 我们将转到 user.js 文件的底部,在那里我们设置了我们的 postsroutes 并将目标为 /api/posts/something 的请求转发到帖子路由。对于目标为 api/user/something 的请求,我们将做同样的事情,我们将把它们转发到 userRoutes


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

因此,任何路径以 /api/user 开头的请求都将进入我们的 user.js 文件,并且在此之后,任何具有 /signup 的请求都将到达此路由。

5)b 在 user.js 文件的 post 路由中,我们将拥有众所周知的带有请求、响应和 next 的函数,我们可以在其中处理传入的请求。


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

6) 在此函数中,我们想创建一个新用户并将其存储在数据库中。为此,我们需要一个新的 mongoose 模型,因为我们现在有了新类型的数据。因此,在 models 文件夹中,我们将创建一个新的 javascript 文件并将其命名为 user.js。

Creating Backend Routes and User Model for Login and Signup in MEAN Stack

7) 在此文件中,我们将导入我们的 mongoose 并为其创建一个新的模式。我们将创建一个模式名称 userSchema。在我们的模式中,我们将有一个类型为字符串的电子邮件和一个密码,它也是一个字符串类型。在代码的底部,我们将导出我们的 mongoose 模型,以便我们可以使用它。


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

在上面的代码中,我们使用了 unique。它不充当验证器,这意味着如果我们尝试添加一个已经存在的电子邮件地址的新条目,它不会自动抛出错误。它最终会导致问题,但是当我们尝试保存数据时,我们不能依赖它来验证数据。Unique 允许 mongoose 和 mongodb 从性能角度进行一些内部优化。与 required 不同,它不是用来验证输入的,如果未提供电子邮件,则会抛出错误。

8) 现在,我们要确保我们不会保存用户数据或具有相同用户 ID 的用户两次。为此,有一个第三方软件包,即 mongoose-unique-validator,它将为我们添加此验证逻辑。我们将运行以下命令来安装此软件包


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

9) 虽然我们不会自动添加它;我们必须将它连接到我们想要验证的模式。为此,我们需要导入 mongoose-unique-validator 软件包,然后我们将像这样将其用作插件


Creating Backend Routes and User Model for Login and Signup in MEAN Stack

我们的 mongoose 模型是为我们的用户设计的,现在每当我们收到发送到我们新路由的请求时,我们将保存我们的用户。我们将在下一节中这样做。