简体   繁体   English

Reactjs 在nodejs中请求为空

[英]Reactjs request empty in nodejs

When sending ReactJS request using post method, the req.当使用 post 方法发送 ReactJS 请求时,req. body object in NodeJS has no values while I tested the api using postman and it worked as expected.当我使用 postman 测试 api 并按预期工作时,NodeJS 中的主体 object 没有任何值。 I'm using axios to connect ReactJS to the API and express in nodejs ReactJS code:我正在使用 axios 将 ReactJS 连接到 API 并在 nodejs Z217C810CED5A5D19409A68 中表达

function CreatePost(props) {
    let [file, setFile] = useState();
    let navigate = useNavigate();
    const params = useParams();
    let groupeId = params.id;
    console.log(groupeId)

    const validationSchema = yup.object({
        content:  yup.string().min(10, 'Must be more than 10 characters').required('description is required')
    })
    const onSubmit = async () => {
        let item = new FormData()
        item.append('title', formik.values.title)
        item.append('content', formik.values.content)
        item.append('file', file)

        let user = JSON.parse(localStorage.getItem('userInfo'))

        let res = await api.post(`/createPoste/${user.id}/${groupeId}/`, item)
        if (res.data === false)
            console.log('creation de post impossible')
        else
            navigate(`/groupe/home/${groupeId}`)
    }
    const formik = useFormik({
        initialValues: {
            title: '',
            content: ''
        },
        onSubmit,
        validationSchema
    })

Nodejs code:节点代码:

const express = require('express')
const bodyParser = require('body-parser')

const router = express.Router()

const db = require('../db')
router.use(bodyParser.urlencoded({extended: true}));

router.post('/createPoste/:userId/:groupeId', async (req, res) => {
    console.log(req.body)
    let post = {
        userId: req.params.userId,
        groupeId: req.params.groupeId,
        title: req.body.title,
        content: req.body.content
    }
    await db.query("insert into postes set ?", post, function (err, result){
        if (err) {
            console.log(err.message)
            res.send(false)
        }
        else res.send(true)
    })
})

In axios you should send the data in body.在 axios 中,您应该在正文中发送数据。 Append the userID and groupeId into the item formData(). Append 将 userID 和 groupeId 放入 formData() 项中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM