2012-05-10 49 views
0

我正在使用Mongoose在Node中的应用程序工作,您可以在其中发布博客条目并对其进行标记。当博客条目被删除时,我想从博客中删除它的引用,这里是我需要帮助的地方。从标签中删除博客参考

下面是删除博客条目的路由,但当我尝试删除博客条目时,出现“TypeError:Can not call method'find'未定义”,所以我猜我的代码是错误的。

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); 

回答

1

很难说有脱节的数字,但看起来像model.Tag可能是不确定的。

备注:除非找到并成功删除博客,否则您可能不想删除标签。