如何使用 yup 验证检查电子邮件 ID 是否已经存在?
How to check email id already exists or not using yup validation?
我正在 React 应用程序中创建一个登录页面,我将电子邮件和密码提交给 api.Now 我想知道输入的电子邮件已经存在或未使用 yup 验证。
我很确定没有办法使用是的来检查它。但是,您可以在数据库中搜索用户输入的电子邮件。如果未找到任何内容,则该电子邮件不存在。
是的,有可能,下面我将展示我是如何在我的 MongoDB Atlas 上进行检查的:
checkEmail: Yup.boolean(),
email: Yup.string()
.email("Email should be valid and contain @")
.required("Email is required")
.when("checkEmail", {
is: true,
then: Yup.string()
.test({
message: () => "Email already exists",
test: async (values) => {
if (values) {
try {
let response = await fetch("http://localhost:3005/users/check", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ email: values }),
});
if (response.ok) {
return true;
} else {
return false;
}
} catch (error) {
console.log(error);
}
}
},
}),
}),
在回调 onBlur 中的字段电子邮件中,我手动设置了 checkEmail 的值,该值在我的初始值中为 false,如下所示:
onBlur={(e) => {
props.handleBlur(e);
if (!props.errors.email) {
props.setValues({
...values,
checkEmail: true,
})
}
}
}
我正在 React 应用程序中创建一个登录页面,我将电子邮件和密码提交给 api.Now 我想知道输入的电子邮件已经存在或未使用 yup 验证。
我很确定没有办法使用是的来检查它。但是,您可以在数据库中搜索用户输入的电子邮件。如果未找到任何内容,则该电子邮件不存在。
是的,有可能,下面我将展示我是如何在我的 MongoDB Atlas 上进行检查的:
checkEmail: Yup.boolean(),
email: Yup.string()
.email("Email should be valid and contain @")
.required("Email is required")
.when("checkEmail", {
is: true,
then: Yup.string()
.test({
message: () => "Email already exists",
test: async (values) => {
if (values) {
try {
let response = await fetch("http://localhost:3005/users/check", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ email: values }),
});
if (response.ok) {
return true;
} else {
return false;
}
} catch (error) {
console.log(error);
}
}
},
}),
}),
在回调 onBlur 中的字段电子邮件中,我手动设置了 checkEmail 的值,该值在我的初始值中为 false,如下所示:
onBlur={(e) => {
props.handleBlur(e);
if (!props.errors.email) {
props.setValues({
...values,
checkEmail: true,
})
}
}
}