我在保存文档时定义了一个预保存方法,如下所示:
Org.pre("save",function(next, done) {
var Currency = require('./currency');
var cur = this.get('currency');
console.log("checking currency: " + cur);
Currency
.findOne({name: cur})
.select('-_id name')
.exec(function (err, currency) {
if (err) done(err);
if (!currency) done(new Error("The currency you selected ('" + currency + "') is not supported. Please select one from /currencies"));
next();
});
});
此方法检查货币集合以查看是否支持货币字段输入。在测试我的 API 时,我得到了返回的相应错误(消息中出现 500 错误:您选择的货币...),但该文档仍保存在 MongoDB 中。我希望在发送错误时不应保存文档。我在这里错过了什么吗?