Javascript 从服务器发送两组不同的错误消息
我有一个错误数组,来自用户提交注册表时发生的一些验证。但与表单验证不同的是检查电子邮件地址是否存在。(使用快速验证器) 这是映射错误消息并发送回客户端的方式:Javascript 从服务器发送两组不同的错误消息,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我有一个错误数组,来自用户提交注册表时发生的一些验证。但与表单验证不同的是检查电子邮件地址是否存在。(使用快速验证器) 这是映射错误消息并发送回客户端的方式: const errorMsg = errors.array().map(err => err.msg); return res.status(422).send(errorMsg); 那么我有什么反应 try { const response = await register(user); co
const errorMsg = errors.array().map(err => err.msg);
return res.status(422).send(errorMsg);
那么我有什么反应
try {
const response = await register(user);
console.log(response);
} catch (ex) {
if (ex.response) {
const errors = ex.response.data;
console.log(errors);
this.setState({ errors });
}
}
然后,我在客户端的数组中循环,将错误消息显示回用户
{Array.isArray(this.state.errors) && (
<div className="alert alert-danger">
{this.state.errors.map((error, index) => (
<div key={index}>
{error}
</div>
))}
</div>
)}
我认为我的问题是,其他错误在一个数组中,而唯一的电子邮件错误不在数组中。如果是电子邮件值,则需要返回包含
错误的响应对象,其值为字符串数组/s。e、 g
const emailExists = await User.findOne({ email: req.body.email });
if (emailExists) return res.status(400).send({ errors: ["Email already exists"] });
您何时执行emailExists
检查?在您尝试调用寄存器的同时
?您使用什么形式的db来确定电子邮件是否已注册?正确,我会在提交注册表的同时进行检查。我正在使用MongoClose。似乎必须是:if(emailExists)return res.status(400)。send([“email exists”])代码>
const emailExists = await User.findOne({ email: req.body.email });
if (emailExists) return res.status(400).send({ errors: ["Email already exists"] });