用户 ID 与用户 post 不同
user id not the same as user post id
我有一个快捷应用程序,您可以在其中制作和查看 posts。我正在努力做到这一点,如果用户 post 做到了,那么编辑图标就会出现在他们旁边。我尝试使用车把助手来做到这一点。
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 '';
}
},
基本上用户就是user._id。 loggedUser 是 post 中的 id,与用户 id 相同。
这是我的车把的样子:
{{#each posts}}
<div class="post-extra">
<div class="card-image">
<!-- User is the logged in user and then post id (_id) -->
{{{editIcon user _id}}}
</div>
<a href="#" class="user-link">{{user.username}}</a>
<h2>{{postTitle}}</h2>
</div>
{{else}}
<p>No posts to display</p>
{{/each}}
</div>
问题是当我控制台log user 和loggedUser 时,返回的id 是不同的。不过在我的 mongodb 中,用户 ID 和 post 中的用户 ID 是相同的。
我的 post 和用户对象:
Post:
_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
助手称为 {{{editIcon user _id}}}
时,您传递的是 post
的 user
和 [=] 的 _id
14=]。这是不正确的,因为您要比较的是 post 的 user
与请求的 user
(logged-in user
)。
根据您提供的示例,不清楚您是否有权访问模板中请求的 user
。 如果你这样做,它肯定不会嵌套在post
对象中,所以你需要一个路径来加强一两个上下文来访问它。结果看起来像:
{{{editIcon user ../user}}}
在此示例中,logged-in user
是 posts
数组的同级,但您的数据结构可能不同。
我创建了一个fiddle供您参考。
我有一个快捷应用程序,您可以在其中制作和查看 posts。我正在努力做到这一点,如果用户 post 做到了,那么编辑图标就会出现在他们旁边。我尝试使用车把助手来做到这一点。
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 '';
}
},
基本上用户就是user._id。 loggedUser 是 post 中的 id,与用户 id 相同。
这是我的车把的样子:
{{#each posts}}
<div class="post-extra">
<div class="card-image">
<!-- User is the logged in user and then post id (_id) -->
{{{editIcon user _id}}}
</div>
<a href="#" class="user-link">{{user.username}}</a>
<h2>{{postTitle}}</h2>
</div>
{{else}}
<p>No posts to display</p>
{{/each}}
</div>
问题是当我控制台log user 和loggedUser 时,返回的id 是不同的。不过在我的 mongodb 中,用户 ID 和 post 中的用户 ID 是相同的。
我的 post 和用户对象:
Post:
_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
助手称为 {{{editIcon user _id}}}
时,您传递的是 post
的 user
和 [=] 的 _id
14=]。这是不正确的,因为您要比较的是 post 的 user
与请求的 user
(logged-in user
)。
根据您提供的示例,不清楚您是否有权访问模板中请求的 user
。 如果你这样做,它肯定不会嵌套在post
对象中,所以你需要一个路径来加强一两个上下文来访问它。结果看起来像:
{{{editIcon user ../user}}}
在此示例中,logged-in user
是 posts
数组的同级,但您的数据结构可能不同。
我创建了一个fiddle供您参考。