Javascript 为什么我会收到一封“信”;Posts验证失败”;向API发送帖子时出错?

Javascript 为什么我会收到一封“信”;Posts验证失败”;向API发送帖子时出错?,javascript,reactjs,mongodb,express,Javascript,Reactjs,Mongodb,Express,我有一个表单,我希望能够将它的内容发布到我在后端连接的MongoDB服务器上,但是当我发布时,我得到错误“Posts validation failed:POST:Cast to string failed for value”{}“path”POST“我不知道为什么。我刚从react开始,所以如果解决方案简单,请原谅我 这是我的表格页: import React from 'react'; import axios from 'axios'; export default class Pos

我有一个表单,我希望能够将它的内容发布到我在后端连接的MongoDB服务器上,但是当我发布时,我得到错误“Posts validation failed:POST:Cast to string failed for value”{}“path”POST“我不知道为什么。我刚从react开始,所以如果解决方案简单,请原谅我

这是我的表格页:

import React from 'react';
import axios from 'axios';

export default class PostList extends React.Component {
    state = {
        post: '',
    }

    handleChange = event => {
        this.setState({ post: event.target.value });
    }

    handleSubmit = event => {
        event.preventDefault();

        const post = {
            post: this.state.name
        };

        axios.post('http://localhost:5000/posts', { post })
            .then(res => {
                console.log(res);
                console.log(res.data);
            })
    }

    render() {
        return (
            <div className="flex-container-home">
                <div className="app">
                    <form onSubmit={this.handleSubmit}>
                        <label>
                            Post:
                        <input type="text" name="post" onChange={this.handleChange} />
                        </label>
                        <button type="submit">Add</button>
                    </form>
                </div>
            </div>
        )
    }
}
这是我的模式:

const mongoose = require('mongoose');


const PostSchema = mongoose.Schema({
    post: {
        type: String,
        required: true
    },
    date: {
        type: Date,
        default: Date.now
    }
})

module.exports = mongoose.model('Posts', PostSchema)

{post}
替换为
post
{post}
将给出

{
   post: {
      post: this.state.name
   }
}
预期可能是

{
   post: this.state.name
}

我用它替换了它,但得到了错误“Posts验证失败:post:Path
post
is required”。当我使用postman时,我可以正确地将post发送到我的db,因此我认为它正确地接收了它。抱歉,如果我没有回答您的问题,因为您打算签出浏览器上的“网络”选项卡,它的位置是什么数据这里是2个位置。当我点击它时,第一个显示加载响应数据失败。第二条是“message:{errors:{post:{name:{ValidatorError”,message:“Path
post
是必需的。”,…},…},…},…}}}}它的响应,检查您的请求体我不知道这是否是问题的根源,但您需要向axios post请求传递一个配置选项,如
axios.post(url、数据、配置)
其中config可以定义为
let config={headers:{“Content Type”:“application/json”}
。我刚刚添加了这个,但我的问题仍然存在。谢谢@BlackMath
{
   post: this.state.name
}