猿问

当我向 API 发送 POST 时,为什么会收到“帖子验证失败”错误?

我有一个表单,我希望能够将其内容发布到我在后端连接的 MongoDB 服务器,但是当我执行 POST 时,我收到错误“帖子验证失败:帖子:值转换为字符串失败”{ }”在路径“post”,我不知道为什么。我刚刚开始反应,所以如果解决方案很简单,请原谅我。


这是我的表单页面:


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 express = require("express")

const router = express.Router()

const Post = require('../models/posts')


router.post('/', async (req, res) => {

    const post = new Post({

        post: req.body.post,

    });

    try {

        const savedPost = await post.save()

        res.json(savedPost);

    } catch (err) {

        res.json({ message: err });

    }

})


module.exports = router;

这是我的架构:


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)


阿波罗的战车
浏览 141回答 1
1回答

拉风的咖菲猫

替换{ post }为post, { post }将给出{&nbsp; &nbsp;post: {&nbsp; &nbsp; &nbsp; post: this.state.name&nbsp; &nbsp;}}预计可能是{&nbsp; &nbsp;post: this.state.name}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答