MongoDB预保存挂钩-不保存条件

fykwrbwg  于 2022-11-03  发布在  Go
关注(0)|答案(1)|浏览(116)

我希望只有在Firm集合中存在所提供的电子邮件域时,才能将RegUser(注册用户)保存到MongoDB RegUsers集合中。我有一个预保存挂钩,它可以验证电子邮件域,但我不知道如果电子邮件域不存在,该调用什么命令/函数来取消保存。有更好的方法来实现这一点吗?或者我应该调用什么命令?

注册用户.ts

regUserSchema.pre('save', async function(done) {
  const domain = this.email.split('@')[1];
  const exists = await Firm.findOne({ domain });
  if (exists) {
    done();
  } else {
    // WHAT TO DO HERE??
  }
});
aij0ehis

aij0ehis1#

为了阻止钩子的继续,并且实际的更新mongoose会让您抛出错误,您可能需要根据代码的编写方式在代码中添加错误处理。

if (exists) {
    done();
} else {
    throw new Error('firm does not exist')
}

相关问题