我有 2 个模型用户和帖子,我需要编写函数来获取个人资料页面的路径(/profile/:login)中选定用户的所有帖子,您可以在其中找到当前用户的所有帖子。我将不胜感激任何帮助 用户型号:
const userSchema = new mongoose.Schema({
login: {
type:String,
requeired: true,
unique:true
},
email: {
type:String,
requeired: true,
unique:true
},
passwordHash:{
type:String,
required:true,
},
avatarURL:String,
},
{
timestamps:true,
}
)
export default mongoose.model("User", userSchema);```
Post model;
```import mongoose from "mongoose";
const postSchema = new mongoose.Schema({
title: {
type:String,
requeired: true,
unique:true
},
text: {
type:String,
requeired: true,
unique:true
},
viewsCount:{
type:Number,
default:0
},
imageURL:String,
user: {
type:mongoose.Schema.Types.ObjectId,
ref:"User",
required: true,
},
},
{
timestamps:true,
}
)
export default mongoose.model("Post", postSchema);```
这是一个非常简单的查询,它将根据路线路径中的
Post
值获取所有 userid
文档:
app.get('/profile/posts/:userid', async (req, res, next) => {
try {
const posts = await Post.find({user: req.params.userid});
console.log('posts==', posts);
res.status(200).json({
posts : posts
});
} catch(err) {
console.log(err)
res.status(200).json({
message : 'No post found'
});
}
});
或者,如果您正在使用会话,则会是:
app.get('/profile/posts', async (req, res, next) => {
try {
const posts = await Post.find({user: req.session.userid});
console.log('posts==', posts);
res.status(200).json({
posts : posts
});
} catch(err) {
console.log(err)
res.status(200).json({
message : 'No post found'
});
}
});