我对node和mongoose有点新意,我正在尝试删除集合中的所有文档。我正在使用此代码:
app.delete('/accounts', function deleteAccount(req, res, next){
Account.remove({}, {multi:true});
res.json({
message: 'Accounts Deleted!'
});
});
问题是,当我向此方法发出API请求时,它会开始处理并且不会停止,除非我中止它。代码删除了我的集合中的所有文档,但它正在执行它时出错。这是它抛出的错误:
events.js:141
扔掉呃//未处理的'错误'事件 ^TypeError:callback.apply不是函数
我希望我的代码在没有此错误的情况下工作,我不希望我的请求在处理请求时挂起。欢迎任何建议。
答案 0 :(得分:5)
您需要传递remove
方法的回调:
Account.remove({}, function(err, result){
res.json({
message: 'Accounts Deleted!'
});
});
如果你不想等待完成:
var cmd = Account.remove({});
cmd.exec();
res.json({
message: 'Accounts Deleted!'
});
实际上remove
得到两个参数,第二个参数是可选的。
如果存在第二个,则应该是回调。
删除文档时,您没有multi
选项。
你得到的例外是mongoose正好将{multi: true}
视为回调