В принципе, я хочу проверить, принадлежит ли пост пользователю, все вроде нормально, но все равно не работает.Я проверил, совпадает ли идентификатор пользователя с автором поста, и да, но все равно не работает, скорее, он показывает все посты на странице myposts, которые были созданы даже от разных пользователей.Я не знаю, что еще делать.
контроллер администратора
exports.getMyPostsPage = async (req, res) => {
const posts = await Post.find({author: req.user._id})
console.log(req.user._id);
console.log(posts);
res.render("admin/myposts", {
path: "/myposts",
pageTitle: "My Posts",
posts: posts,
})
}
модель js
const mongoose = require("mongoose"),
Schema = mongoose.Schema,
bcrypt = require("bcryptjs");
const postSchema = new Schema({
title: String,
description: String,
context: String,
author: {
type: Schema.Types.ObjectId,
}
});
const userSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true,
},
password: {
type: String,
required: true
},
posts: [postSchema]
});
userSchema.pre("save", async function save(next) {
const user = this;
if (!user.isModified("password")) return next();
const hashedPassword = await bcrypt.hash(user.password, 10);
user.password = hashedPassword;
next();
});
const Post = mongoose.model("Post", postSchema);
const User = mongoose.model("User", userSchema);
module.exports = {
User,
Post
}
myposts.ejs
<main>
<% if (posts.length > 0) { %>
<% for (let post of posts) { %>
<div class="grid">
<div>
<article class="post">
<h1><%=post.title%></h1>
<p><%=post.description%></p>
<a href="/posts/<%=post._id%>">See Post</a>
<article>
</div>
</div>
<% } %>
<% } else { %>
<h1 class="no-post">You have no Posts</h1>
<% } %>
</main>