2012-05-10 10 views
0

私は、ブログエントリを投稿しタグを付けることができるMongooseを持つノードのアプリケーションで作業しています。ブログのエントリーが削除されたら、そのブログのエントリーをブログから削除したい、そしてここで私は助けが必要です。タグからブログ参照を削除する

以下はブログエントリを削除するルートですが、「TypeError:ブログエントリを削除しようとすると、メソッド '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は未定義かもしれように見えます。

サイドノート:ブログが見つかって正常に削除されない限り、タグを削除したくない可能性があります。

関連する問題