我正在使用 Mongoose 在 Node 中开发一个应用程序,您可以在其中发布博客条目并标记它们。当博客条目被删除时,我想从博客中删除它的引用,这里是我需要帮助的地方。
下面是删除博客条目的路线,但是当我尝试删除博客条目时,我得到“TypeError: Cannot call method 'find' of undefined”,所以我猜我下面的代码是错误的。
app.post('/blog/delete/:id', function(req, res){
model.BlogPost.findById(req.params.id, function (err, blog){
if (err) {
console.log(err);
// do something
}
blog.remove(function(err) {
console.log(err);
// do something
});
var query = model.Tag.find( { blogs: { $in : blog } } );
query.exec(function (err, tags) {
if (err) {
console.log(err);
// do something
}
tags.remove();
res.redirect('back');
});
});
});
博客条目的模型:
var BlogPostSchema = new Schema({
name : String,
type : String,
author : ObjectId,
title : String,
body : String,
buf : Buffer,
date: { type: Date, default: Date.now },
comments : [CommentSchema],
meta : {
upvotes : Number,
downvotes : Number,
// points : { type Number, default: },
favs : Number,
uniqueIPs : [String],
tags : [String]
}
});
modelObject.BlogPost = mongoose.model('BlogPost', BlogPostSchema);
标签型号:
var TagSchema = new Schema({
name : String
, blogs : [String]
});
modelObject.TagSchema = TagSchema;
modelObject.Tag = mongoose.model('Tag', TagSchema);