Mongoose验证器:在更新期间获取当前文档

时间:2017-03-04 05:01:26

标签: node.js mongodb mongoose

我对电子邮件和用户名唯一性使用以下验证

const unique = (field) => {
  return (value, callback) => {
    if (!value || value.length <= 0)
      callback(true)

    const query = Mongoose.model('User').where(field, new RegExp(`^${value}$`, 'i'))
    if(!this.isNew)
      query.where('_id').ne(this._id)

    query.count((err, n) => callback(n == 0))
  }
}

但是,在更新期间this未设置,因此在使用他/她自己的电子邮件/用户名更新现有用户时,更新失败,因为在where子句中this._id未定义。

我在验证期间记录了这个值,它是一个空对象{}

0 个答案:

没有答案