gpt4 book ai didi

javascript - 使用 mongoose 中间件验证密码是否错误?

转载 作者:行者123 更新时间:2023-12-02 22:05:35 25 4
gpt4 key购买 nike

所以现在我正在使用验证器包进行电子邮件验证

const validator = require('validator');

email: {
type: String,
required: [true, 'User must have a email'],
unique: true,
lowercase: true, //transform to lowercase
validate: [validator.isEmail, 'Please provide a valid email']
}

所以我通过堆栈溢出发现了这个函数:

var validateEmail = function(email) {
var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
return re.test(email)
};

var EmailSchema = new Schema({
email: {
type: String,
trim: true,
lowercase: true,
unique: true,
required: 'Email address is required',
validate: [validateEmail, 'Please fill a valid email address'],
match: [/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/, 'Please fill a valid email address']
}
});

所以我想知道,我该如何使用它或使用类似的东西作为 Mongoose 中间件运行?并且,将其用作中间件有意义吗?

示例:

userSchema.pre('save'....)

最佳答案

基本上,我认为使用架构验证更有意义,并且更容易维护

使用中间件进行验证:

我之前已经尝试过,但我不得不说很难做到正确。如果您将中间件定义为 pre.('save', ...) (这是正确使用的),正如您所提到的,在某些情况下您会尝试更新根据文档,中间件不会被执行,您必须在单独的任务中处理这些情况,这些任务很难维护,并且您无法确定它们是否有效或者您没有错过任何情况。 More on this topic

关于javascript - 使用 mongoose 中间件验证密码是否错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59725630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com