我对 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/