我对 node 和 mongoose 有点陌生,我正在尝试删除集合中的所有文档。我正在使用此代码:

app.delete('/accounts', function deleteAccount(req, res, next){

    Account.remove({}, {multi:true});
    res.json({
        message: 'Accounts Deleted!'
    });

});

问题是当我向这个方法发出 API 请求时,它开始处理并且不会停止,除非我中止它。该代码删除了我的集合中的所有文档,但执行时出错。这是它抛出的错误:



我希望我的代码在没有此错误的情况下正常工作,并且我不希望我的请求在处理请求时挂起。欢迎任何建议。

最佳答案

您需要为 remove 方法传递回调:

Account.remove({}, function(err, result){
  res.json({
        message: 'Accounts Deleted!'
    });
});

如果您不想等待完成:
var cmd = Account.remove({});
cmd.exec();
res.json({
            message: 'Accounts Deleted!'
        });

实际上 remove 有两个参数,第二个是可选的。
如果存在第二个,则应该是回调。

在删除文档时,您没有 multi 选项。

你得到的异常(exception)是 Mongoose 考虑 {multi: true} 作为回调

关于javascript - TypeError : callback. apply 不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41996345/

10-16 03:49