获取 Node Express 中某个用户的所有帖子

问题描述 投票:0回答:1

我有 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);```

reactjs node.js mongodb mongoose mongoose-schema
1个回答
0
投票

这是一个非常简单的查询,它将根据路线路径中的

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'
       });
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.