gpt4 book ai didi

node.js - 带有 Mongoose 的快速验证器

转载 作者:搜寻专家 更新时间:2023-11-01 00:29:19 24 4
gpt4 key购买 nike

我正在使用(angularjs,bootstrap)为前端(node,express)为后端(mongodb,mongoose 层)为数据库开发自己的网站。
我有一张注册表,在该表格中,我想检查当有人尝试创建新帐户时电子邮件是否尚未被占用,因此我希望我的注册 api 检查提交的电子邮件之前是否尚未被占用。

我现在正在使用这个验证器 https://github.com/ctavan/express-validator#validation-by-schema这是我的代码:

var vadlidateRegUser= function (req,res,next) {
req.checkQuery('UserName','Username must contain letters and numbers only').isAlphanumeric().notEmpty();

req.checkQuery('Email','Email should have a valid syntax e.g: example@example.com')
.isEmail().notEmpty();

var error = req.validationErrors();
if(!error){
next();
}else {
res.json({success:false, message:error});
}

}

现在我想检查验证器是否电子邮件是唯一的,如下所示:

req.checkQuery('Email','Email should have a valid syntax e.g: example@example.com')
.isEmail().isUnique(Model Name);

有什么建议吗?

最佳答案

express-validator 可以检查和清理您的输入数据,但无法判断电子邮件是否已在您的数据库中。

我认为最好的方法是让它在您的 mongoose 架构中唯一,并在电子邮件已经存在时处理错误。

let User = new Schema({
firstname: String,
lastname: String,
email: {
type: String,
required: true,
unique: true, // ensure unique email
validate: [ isEmail, "Email should have a valid syntax e.g: example@example.com" ]
},
// ...
})

关于node.js - 带有 Mongoose 的快速验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43636782/

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