gpt4 book ai didi

javascript - 从服务器发送 2 组不同的错误消息

转载 作者:行者123 更新时间:2023-12-02 22:33:45 26 4
gpt4 key购买 nike

我有一个来自用户提交注册表单时发生的某些验证的错误数组。但与表单验证分开的是检查电子邮件地址是否存在。 (使用快速验证器)

这是如何映射错误消息并将其发送回客户端的:

 const errorMsg = errors.array().map(err => err.msg);
return res.status(422).send(errorMsg);

然后我使用react

    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>
)}

除了电子邮件地址(如果已被使用)之外,所有错误都会显示。错误消息仅显示在控制台中,而不显示在警报中。

这就是我发回错误消息的方式:

  const emailExists = await User.findOne({ email: req.body.email });
if (emailExists) return res.status(400).send("Email already exists");

我认为我的问题是其他错误位于数组中,而唯一的电子邮件错误则不在数组中。

最佳答案

如果进行电子邮件验证,您需要返回包含 errors 键的响应对象,其值为字符串数组。例如

const emailExists = await User.findOne({ email: req.body.email });
if (emailExists) return res.status(400).send({ errors: ["Email already exists"] });

关于javascript - 从服务器发送 2 组不同的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58807450/

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