Используя экспресс-руль, у меня есть помощник {{#each}}, который оборачивает партиал для отображения каждого сообщения от пользователя.Пока что соответствующий код для руля:
<div class="container">
<div>
{{#each post}}
{{> posts/post-block}}
{{/each}}
</div>
</div>
, и это содержимое партиала:
<div class="single-post-container">
<p class="d-inline">
<span class="title">{{title}}</span>
<a href="/user/{{User.id}}"><span class="float-right author">Submitted by: {{User.email}}</span></a>
</p>
<hr>
<p class="post-body">
{{body}}
</p>
{{#if_eq reqUserId User.id}}
<button type="button" class="btn btn-warning">Delete</button>
{{/if_eq}}
</div>
{{#if_eq}} к нижней части партиалапользовательская вспомогательная функция, которая проверяет, равны ли два заданных значенияВ этом случае я проверяю, просматривает ли текущий вошедший в систему пользователь (reqUserId
) собственный пост или пост другого пользователя (User.Id
).Если они просматривают свои собственные (reqUserId == User.Id
), отобразите кнопку удаления.
Handlebars получает эти данные через Express, используя следующий код:
app.get("/home", isAuthenticated, function (req, res) {
db.Post.findAll({
order: [
["id", "DESC"]
],
include: [db.User]
}).then(function (dbPost) {
//console.log(dbPost);
//console.log(req.user.id)
res.render("index", {
post: dbPost,
reqUserId: req.user.id
})
})
});
Моя проблема лежит на линии12 приведенного выше фрагмента кода.Поскольку партиал вызывается только для {{#each post}}
, он никогда не получает данные reqUserId и кнопка никогда не отображается.Для пояснения, последний фрагмент кода использует sequelize для извлечения информации из базы данных, поэтому, к сожалению, reqUserId
не может быть извлечен оттуда.Есть ли вокруг этого?