在 MEAN Stack 中向模型添加引用17 Mar 2025 | 阅读 2 分钟 在之前的模块中,我们成功添加了身份验证。从本节开始,我们将开始一个新的模型,即授权。身份验证和授权是略有不同的东西。在上一节中,我们确保与我们的应用程序交互的用户需要进行身份验证,这意味着他们需要拥有一个帐户才能创建帖子、编辑帖子或删除帖子。 授权更进一步。我们不希望允许每个用户编辑或删除每个帖子。用户应该与他们在数据库中创建的帖子相关联。我们需要存储创建帖子的用户的 ID,然后当用户尝试删除帖子时,我们要检查尝试删除帖子的用户是否是创建该帖子的用户。我们将逐步实现授权,在本节中,我们将首先向模型添加引用。我们将使用以下步骤来完成此操作 1) 我们希望存储有关哪个用户在数据库中创建了哪个帖子的信息。我们可以在用户对象中存储帖子列表,或者在我们的帖子中存储用户列表或一个用户(确切地说),因为每个帖子将仅由一个用户创建。我们将返回到我们的帖子模型,即“models”文件夹中的post.js 文件,并进行编辑。我们将添加一个新字段,即创建者,并且此字段的类型将不是字符串。它将是 Mongoose ID 对象,因为它将是一个 ID。我们还需要此字段,因此我们将 required 设置为 true。 ![]() 2) 我们希望添加额外的信息。我们告诉 mongoose 我们要存储一个 ID,但我们希望告诉 mongoose 这个 ID 将与哪个模型相关联。因此,我们将添加一个额外的属性,即ref。 ref 属性允许我们定义我们将要存储的此 ID 将属于哪个模型。这将是我们的用户模型,因为我们将存储一个用户 ID。 ![]() 此额外信息将自动添加。用户无需将其添加到他创建帖子的表单中。它将从我们通过请求到达后端时传递的令牌中推断出来。要继续下一步,我们首先必须从数据库中删除所有帖子。因此,我们将从数据库中删除所有帖子。 我们已成功将创建者键添加到我们的数据模式中。在下一节中,我们将使用该模式并在创建新帖子时存储该信息。 下一主题将用户 ID 添加到帖子 |
我们请求您订阅我们的新闻通讯以获取最新更新。