关于这个问题,我已经头痛了两个小时了,似乎找不到解决办法。
下面是问题代码:

/* 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上托管db也可能是相关的。
edit 2:经过几天的测试,发现问题是因为在我为删除定义的中间件中,我忘记调用next()函数。掌心

最佳答案

经过几天的测试,发现问题是因为在我为删除定义的中间件中,我忘记调用next()函数。掌心

10-06 13:25
查看更多