【问题标题】:MongoDB pre-save hook - do not save on conditionalMongoDB pre-save hook - 不保存条件
【发布时间】:2022-10-23 13:57:15
【问题描述】:

如果提供的电子邮件域存在于 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??
  }
});

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    为了停止钩子的继续,实际更新mongoose 将您排除在throw an error 之外,您可能需要根据代码的编写方式向代码添加错误处理。

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

    【讨论】:

      猜你喜欢
      • 2021-01-08
      • 2015-03-27
      • 2016-04-29
      • 2014-03-22
      • 2019-09-10
      • 2015-07-20
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多