【发布时间】:2018-05-04 06:49:01
【问题描述】:
当我单击提交按钮时,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)。
我一直在研究尝试不同的东西,让两个助教和我的导师看了一下,我们被难住了。
感谢观看。
【问题讨论】:
-
它们是否像前端(react 端)和后端(express 和 mongo)一样分开?
-
是分离的应用结构。
-
我删除了我不相关的评论。我做了一些研究,并认为问题可能出在
book_image字段名上。根据this,名字中间不能有_。因此,也许可以尝试将该字段名称更改为其他名称,看看它是否能解决您的问题。 -
你能打开开发者控制台和网络部分吗?请向我们发送请求和响应 /api/books
-
我尝试在不带 _ 的情况下重命名,但仍然出现 api 错误,谢谢。
标签: javascript node.js mongodb reactjs axios