我想验证用户的电子邮件地址,但仅限于更改时。每次我保存到 anyEntrant
时,以下代码似乎都会出现错误,因此在保存自身时会抛出一个错误,即电子邮件是重复的。
如何在创建参赛者而不是每次进行编辑和保存时正确验证?
EntrantSchema.pre 'save', (next)->
user = this
# Email Validation
if (user.isModified('email'))
console.log "Email has been changed".green.inverse
# Unique Value
EntrantSchema.path("email").validate ((email,respond) ->
Entrant.findOne {email:email}, (err,user) ->
if user
respond(false)
respond(true)
), "Oopsies! That e-mail’s already been registered"
请注意,我认为 validate() 是第一次绑定,因为当我更新用户时,我没有收到“电子邮件已更改”,我在控制台登录我的代码