【问题标题】:mongoose pre update not firing猫鼬预更新未触发
【发布时间】:2023-03-15 00:45:02
【问题描述】:

我已按照猫鼬here中的指示进行操作

PostSchema.pre('update', function() {
    console.log('pre update');
    console.log(this);
});

它没有触发这个中间件。我在这里遗漏了什么吗?

我添加了next,所以它看起来和我的预存完全一样,但是仍然没有任何作用。

【问题讨论】:

  • 另外,使用 .exec() 方法的方面会影响钩子的行为。

标签: node.js mongodb mongoose


【解决方案1】:

确保在调用 mongoose.model() 后不定义它。另请注意findOneAndUpdate / upserts 或更新不会触发此钩子。它无法执行的另一个原因是验证失败。因此你需要设置一个pre('validate') hoke

【讨论】:

  • 你说得对,不过 findOneAndUpdate 有点令人困惑。
  • pre('validate') 不会为update 操作触发not(请参阅this)。请改用save
猜你喜欢
  • 2018-06-09
  • 2016-07-11
  • 1970-01-01
  • 1970-01-01
  • 2012-03-28
  • 2017-08-24
  • 1970-01-01
  • 2021-03-05
  • 2016-05-14
相关资源
最近更新 更多