Gir*_*m.D 4 javascript mongoose mongodb node.js
我对node和mongoose有点陌生,我正在尝试删除集合中的所有文档。我正在使用此代码:
app.delete('/accounts', function deleteAccount(req, res, next){
Account.remove({}, {multi:true});
res.json({
message: 'Accounts Deleted!'
});
});
Run Code Online (Sandbox Code Playgroud)
问题是,当我对此方法发出API请求时,它会开始处理并且不会停止,除非我中止它。该代码删除了我的收藏夹中的所有文档,但是这样做却出错。这是它引发的错误:
events.js:141
投掷者 //未处理的“错误”事件^
TypeError:callback.apply不是函数
我希望我的代码能正常工作而不会出现此错误,并且我不希望我的请求在处理请求时挂起。欢迎任何建议。
您需要传递remove方法的回调:
Account.remove({}, function(err, result){
res.json({
message: 'Accounts Deleted!'
});
});
Run Code Online (Sandbox Code Playgroud)
如果您不想等待完成:
var cmd = Account.remove({});
cmd.exec();
res.json({
message: 'Accounts Deleted!'
});
Run Code Online (Sandbox Code Playgroud)
实际上remove得到两个参数,第二个参数是可选的。如果第二个存在,则应为回调。
在删除文档时,您没有multi选择权。
您得到的例外是,对于猫鼬而言,完全考虑将其{multi: true}作为回调