javascript - 从反应组件状态失败 POST 到 mongoDB
问题描述
当我单击提交按钮时,onClick 事件应该使用 Mongoose 将在反应页面状态中设置的数据发布到 mongodb。从 console.logs 并检查它在 .create(req.body) 的控制器中失败并抛出我设置的错误状态 422。
// onClick function
postBookDB = event => {
event.preventDefault();
if (this.state.title) {
API.donateBook({
isbn: this.state.isbn,
title: this.state.title,
subtitle: this.state.subtitle,
author: this.state.author,
desc: this.state.desc,
book_image: this.state.book_image,
pages: this.state.pages,
condition: null,
notes: null,
user: null
})
.catch(err => console.log(err));
}
};
// controller
create: function (req, res) {
console.log("in create function");
console.log(req.body);
db.Book
.create(req.body)
.then(dbModel => res.json(dbModel))
.catch(err => res.status(422).json(err));
},
// API.js
donateBook: function (bookData) {
console.log(bookData);
return axios.post("/api/books", bookData);
}
我在控制台中收到此错误:POST http://localhost:3000/api/books 422 (Unprocessable Entity)。
我一直在研究尝试不同的东西,有两个 TA 和我的导师看了一下,我们被难住了。
谢谢参观。
解决方案
@hurricane 建议我查看开发人员控制台中的网络选项卡并检查 POST 消息。我收到了字幕验证错误,因为我将其设置为 true。
确保更改模型中字段的验证,因此如果将该字段留空,则不会引发该错误并且无法 POST 到数据库。
推荐阅读
- c# - 如何在 c# System.Web.Http.ApiController 中实现信号器客户端
- json - 如何使用 vba 创建嵌套的 json 文件
- android - 如何在android的WebView中获取、保存和重用滚动位置
- python - 如何使用 aws CDK 和 Python 部署层并将其附加到 aws lambda 函数
- angular - 错误错误:未捕获(承诺):错误:没有布尔提供者
- cmake - 使用 cmake 编译错误的标头
- c++ - 继承:调用基类的成员和方法
- php - 在 Wordpress、Woocommerce 和 AffiliateWP 上,修改 email-order-details.php 以在电子邮件模板中包含会员的名称
- javascript - 对仅在调试模式下工作的 LocaleLowerCase 做出本机反应
- sql - 在 SQL Server 中将行值转换为列