【发布时间】:2020-11-03 23:21:01
【问题描述】:
我正在尝试向我的服务器发出 POST 请求以创建新帖子(标题、正文)并将其保存在数据库中,我收到 200 状态代码,但标题和正文没有被插入进入帖子。
更新:我刚刚将控制器方法中的 return res.status(400).json({ error: errorHandler(err) }) 更改为 res.send(err),现在我收到一条明确的错误消息:需要标题和正文路径。
我该如何解决这个问题?
CreatePost.js
class CreatePost extends React.Component {
constructor(props) {
super(props)
this.state = {
title: '',
body: ''
}
}
changeHandler = (e) => {
this.setState({ [e.target.name]: e.target.value })
}
submitHandler = e => {
e.preventDefault()
axios.post(`${API}/blog/post/create`, this.state)
.then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
}
render() {
const {title, body} = this.state
return (
<div>
<form onSubmit={this.submitHandler}>
<input type="text" name="title"
onChange={this.changeHandler} value={title} />
<input type="text" name="body"
onChange={this.changeHandler} value={body}/>
<button type="submit">Submit</button>
</form>
</div>
)
}
}
export default CreatePost
控制器/post.js
exports.create = (req, res) => {
let post = new Post()
post.save((err, result) => {
if(err) {
return res.status(400).json({
error: errorHandler(err)
})
}
res.json(result)
})
}
路由/posts.js
router.post('/blog/post/create', create);
【问题讨论】:
标签: node.js reactjs express mern