Node.js POST请求错误:路径'title'和'body'是必需的
我试图向我的服务器发出一个POST请求,创建一个新的POST(标题,正文)并将其保存在db中,我收到一个200状态码,但是标题和正文没有插入到POST中 更新:我刚刚将控制器方法中的Node.js POST请求错误:路径'title'和'body'是必需的,node.js,reactjs,express,mern,Node.js,Reactjs,Express,Mern,我试图向我的服务器发出一个POST请求,创建一个新的POST(标题,正文)并将其保存在db中,我收到一个200状态码,但是标题和正文没有插入到POST中 更新:我刚刚将控制器方法中的return res.status(400).json({error:errorHandler(err)})更改为res.send(err),现在我收到一条清晰的错误消息:标题和正文路径是必需的 我怎样才能解决这个问题 CreatePost.js class CreatePost extends React.Com
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
routes/posts.js
router.post('/blog/post/create', create);
exports.create = (req, res) => {
const {title, body} = req.body
let post = new Post({title, body})
post.save()
.then(response => {
res.send(response)
.catch(err => {
res.send(err)
})
})
}
您是否尝试从或(我最喜欢的)调用端点以验证它是否已启动并正在运行?这是一种独立于代码测试端点的好方法 由于代码中没有使用HTTP404,我怀疑它来自Express的内部机制 顺便说一下,API uri中的动词POST和“create”部分说明了相同的意图。您可以去掉这个创建部件。这被认为是最重要的问题之一。试试这个
axios({ url: `${API}/blog/post/create`, method: 'POST', data: this.state})
我已经解决了这个问题。我并没有将标题和正文插入到post对象中 我从
req.body
解构了标题
和正文
:const{title,body}=req.body
并将数据插入对象
let post=new post({title,body})
controllers/posts.js
router.post('/blog/post/create', create);
exports.create = (req, res) => {
const {title, body} = req.body
let post = new Post({title, body})
post.save()
.then(response => {
res.send(response)
.catch(err => {
res.send(err)
})
})
}
谢谢你的回答,但这对我不起作用@凯文·利特感谢你的回答。我在《邮递员》中也收到了404错误。谢谢,我将从uri中删除
create
。