Javascript 用户id与用户帖子id不同

Javascript 用户id与用户帖子id不同,javascript,mongodb,handlebars.js,handlebarshelper,Javascript,Mongodb,Handlebars.js,Handlebarshelper,我有一个express应用程序,您可以在其中制作和查看帖子。我正试图使它这样一个编辑图标出现在旁边的用户张贴,如果他们做了。我试着用一个把手助手来做这件事 editIcon: function (user, loggedUser, floating = true) { console.log(user, loggedUser); if (user._id.toString() == loggedUser._id.toString()) { if (floating) { return

我有一个express应用程序,您可以在其中制作和查看帖子。我正试图使它这样一个编辑图标出现在旁边的用户张贴,如果他们做了。我试着用一个把手助手来做这件事

editIcon: function (user, loggedUser, floating = true) {
console.log(user, loggedUser);
if (user._id.toString() == loggedUser._id.toString()) {
  if (floating) {
    return `<div>edit icon</div>`;
  }
} else {
  return '';
}

当您以
{{{{editIcon user\u id}}}
的身份调用
editIcon
助手时,您正在传递
post
user
post
\u id
。这是不正确的,因为您要将帖子的
用户
与请求的
用户
(登录的
用户
)进行比较

从您提供的示例中,不清楚您是否有权访问模板中请求的
用户
。如果这样做,它肯定不会嵌套在
post
对象中,因此需要一个路径来升级一个或两个上下文来访问它。结果将类似于:

{{{editIcon user ../user}}}
在本例中,登录的
用户
posts
数组的兄弟,但您的数据结构可能不同


我已经创建了一个供您参考。

为什么在
{{{{editIcon user\u id}}}
中两次将
user
传递给
editIcon
?@76484打字错误。现在刚修好。尽管如此,帖子中的所有内容仍然适用,并且都是相同的。记录了哪些
id
值,以及您期望的值。@76484 user.\u id记录了整个用户对象,包括id。记录的用户记录了帖子id。在我的帖子中,我有一个用户具有该用户id。我想查看用户id是否与文章中的用户id匹配,如果匹配,则在该文章旁边显示编辑图标。我不知道
user.\u id
如何保存整个用户对象。但是助手的
\u id
参数听起来像是帖子的id。您应该能够将帖子的
user
属性传递给助手,并从中获取ID。也许如果你发布了数据——Post和用户对象——你就能得到更具体的帮助。首先,我想感谢你花这么多时间解决我的问题。因此,我已经查看了提供的fiddle,我的数据结构与示例相同。但是,当我向登录用户添加._id时,它将变得未定义。我正在用用户填充页面,并且在我的帖子架构中有'user:{//connections user to posts type:mongoose.Schema.Types.ObjectId,ref:'LocalUser',},'。我真的觉得我什么都试过了。在这种情况下,我建议登录用户查看它有什么属性。
_id:ObjectId("5f8523d8b58f4919908e3895") <-- this is being returned..
postTitle:"Test post"
postBody:"<div>stuff</div>"
user:ObjectId("5f8522c9c0ec222ea4b7c8c0") <-- instead of this
createdAt:2020-10-13T03:49:44.333+00:00
__v:0
  _id: ObjectId("5f8522c9c0ec222ea4b7c8c0"), // User id 
  username: 'test',
  email: 'test@gmail.com',
  password: 'hashed password here',
  createdAt: 2020-10-13T03:45:13.018Z,
  __v: 0
{{{editIcon user ../user}}}