reactjs - React 组件只显示状态码错误消息而不是自定义的
问题描述
在 POST 注册新用户期间,我检查该用户是否已存在于 mongoDB 数据库中,如果是,则将其显示在注册表附近的反应中。我正在使用 express.js 创建我的 API 和 axios 以从客户端发送请求。这就是我检查用户是否注册的方式。
const user = await Model.User.findOne({email: req.body.email});
if(user) return res.status(400).send('User already registered');
这是在注册按钮单击时调用的函数:
handleSubmit= async (userData) =>{
await apis.registerNewUser(userData)
.then(res => console.log(res.body))
.catch(err => {
console.log(err);
this.setState({errorMessage: err.message});
})
}
问题是我无法显示发送响应时添加的自定义错误消息。我没有得到“用户已经注册”,而是在我的注册表单附近显示“400 Bad request”。当我通过邮递员发帖时没有问题,响应文本窗口中显示“用户已注册”响应,但是在反应端收到错误时该部分不存在。我无法向用户发送一个错误,告诉他无法注册的原因。如何在反应中获得“用户已注册”?
解决方案
我找到了解决方案。为了在捕获错误时读取放入 send() 的自定义文本的属性,我需要从 err.response.data 读取 - 这是读取“用户已注册”的正确属性。我希望有一天它对某人有所帮助。
推荐阅读
- javascript - 用户可以有意或通过随机生成填充两个相关的 div — 如何将选定的值存储在本地存储中?
- azure - 使用 Terraform 更新 Azure KeyVault 的防火墙规则
- java - 如何在浏览器中使用 Java Web 服务返回图像或文件
- google-cloud-platform - GCP 的 Terraform 和容器声明 - 缩进有多重要?
- android - 主键不增加房间android
- python - 比较两个 pandas 数据帧并创建第三个,其中至少有 2 个或更多值相等
- node.js - 如何中断 Node.js 中的管道请求并返回重定向?
- android - 如何在 RecyclerView 适配器中启动ActivityForResult 并覆盖 onActivityResult?
- android - 通过 WorkManager API 在每周五安排一项特定任务
- zend-framework2 - 尝试在zend中更改数据库名称