【问题标题】:Removing a blog reference from a tag从标签中删除博客引用
【发布时间】:2012-05-11 01:34:18
【问题描述】:

我正在使用 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);

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    没有行号很难分辨,但看起来 model.Tag 可能未定义。

    旁注:除非博客被发现并成功删除,否则您可能不想删除标签。

    【讨论】:

      猜你喜欢
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 2021-01-26
      • 1970-01-01
      相关资源
      最近更新 更多