在 MEAN Stack 中将用户 ID 添加到帖子中2025年3月17日 | 阅读 3 分钟 在我们之前的章节中,我们成功地将 creator 键添加到我们的数据模式中。现在,我们需要将用户 ID 添加到帖子中,因此在本节中,我们将学习如何将帖子与用户 ID 连接起来。为此,我们将对一些帖子路由进行更改。我们将使用以下步骤来完成此操作 1) 我们将转到我们的帖子路由,即路由文件夹中的 posts.js 文件。我们将到达创建新帖子的路由。在此路由中,我们存储标题、内容和图片路径,现在我们也需要填充 creator 字段。我们将添加 creator 属性,对于它的值,我们有一个问题,即从哪里获取用户 ID。我们将通过解码令牌从令牌中获取 ID。我们将解码令牌以获取信息。 现在,如果我们返回到我们的中间件,我们已经验证了令牌,并且验证方法为我们检索了令牌。它为我们提供了一个解码后的令牌。因此,我们首先将结果存储在一个常量中,然后我们可以访问该令牌内部的数据。 ![]() 2. 现在,我们不需要 checkAuth 方法中的数据。我们需要它在创建新帖子的帖子路由中。现在,很酷的是 ExpressJS,我们正在使用的 NodeJS 框架,使我们能够轻松地向请求对象添加新的数据片段,新字段。如果我们的中间件随后调用 next,则请求将移至下一个中间件,并且它将保留我们添加到它的任何字段。因此,我们将简单地访问请求,然后添加一个新字段;只需确保不覆盖已经存在的字段即可。我们将添加 userData 字段,并分配一个 JavaScript 对象作为值,该 JavaScript 对象 包含电子邮件和用户 ID。 ![]() 现在,此 check-auth 中间件之后运行的每个中间件都将获取额外的这部分信息。 3) 如果我们查看我们的 post.js 文件,我们将看到我们尝试创建新帖子的中间件在 check-auth 中间件之后运行。这意味着我们将拥有额外的这部分信息,即 userData 字段。因此,现在,我们将以以下方式将值传递给我们之前创建的 creator 字段 ![]() 现在,我们应该能够将用户 ID 存储为我们帖子的一部分。 4) 现在,我们将返回到我们的 posts.service.t 文件,我们在其中获取所有帖子。我们将简单地转到我们的 subscribe 方法,并控制台记录我们的 transformedPostData 以确保它们是否包含 userId。 ![]() 5) 需要记住的一件事是,我们在 subscribe 方法的上方映射了帖子数据。现在,我们将其映射到一个新对象中,在该对象中我们不再使用该 creator Id。因此,我们也会在这里添加该 creator Id 字段。 ![]() 现在,我们将保存所有文件并返回到我们的 angular 应用程序。如果我们添加一个新帖子,我们将看到附加到帖子的创建者信息。 ![]() 现在,我们将用户 ID 与帖子关联起来,并且我们的代码也运行良好。在下一节中,我们将使用后端上的 creator ID 来拒绝任何其他用户对给定帖子的删除或更新请求。 下一主题使用授权保护资源 |
我们请求您订阅我们的新闻通讯以获取最新更新。