没有调用Mongoose query.remove()回调

时间:2011-12-30 21:16:01

标签: javascript node.js mongodb mongoose

在这个问题上,我一直在桌子上撞了大约2个小时,我似乎无法找到解决方案。

以下是问题代码:

/* Users */

var mongoose = require("mongoose");

var User = new mongoose.Schema({
    a: String,
    d: String
});

var removeByDeviceToken = function(device_token, callback) {

    this.findOne({ d: device_token }, function(error, user) {
        if (error) {
            callback(error);
        } else if (user) {
            user.remove(function(error) {
                callback(error);
            });
        } else {
            callback(new Error("No users with that device token were found."));
        }
    });
};

User["static"]("removeByDeviceToken", removeByDeviceToken);
mongoose.model("User", User);

问题很简单,就是没有调用user.remove()的回调。 (用户本身也未被删除。)

谢谢!

编辑:经过一些测试后,似乎正在调用我为删除定义的中间件。我在MongoHQ上托管数据库可能也很重要。

编辑#2 :经过几天的测试,事实证明问题是因为在我为删除定义的中间件中,我忘了调用next()函数。 捂脸

1 个答案:

答案 0 :(得分:4)

经过几天的测试,事实证明问题是因为在我为删除定义的中间件中,我忘了调用next()函数。捂脸