router.delete('/delete',authenticate,async(req, res)=>{
const user = User.findById(req.rootUser._id)
{
try{
await Post.deleteMany({postedBy:rootUser})
await User.findByIdAndDelete(req.rootUser._id)
res.status(200).json(err);
}catch(err){
res.status(500).json(err);
}
}
})rootUser是用户,我们可以通过身份验证访问它。
如果我使用id方法,如router.delete(‘:/id.然后如何访问post,因为post id与user id不同。
POST架构:
const mongoose = require('mongoose');
const {ObjectId} = mongoose.Schema.Types
const postSchema = new mongoose.Schema({
heading:{
type:String,
required: true
},
confess:{
type: String,
required:true
},
likes:[{type:ObjectId,ref:"USER"}],
postedBy:{
type: ObjectId,
ref: "USER"
}
});
const Post = module.exports = mongoose.model('POST', postSchema);
module.exports = Post;发布于 2021-08-17 20:49:04
由于postedBy字段的类型为ObjectId,因此在搜索要删除的帖子时,必须传入用户的_id。因此,您必须这样做:
await Post.deleteMany({postedBy: req.rootUser._id})不只是寻找rootUser,因为首先,rootUser是未定义的(它应该是req.rootUser),我们需要rootUser => req.rootUser._id的_id
https://stackoverflow.com/questions/68823038
复制相似问题