Al enviar una solicitud de ReactJS utilizando el método de publicación, el req. El objeto del cuerpo en NodeJS no tiene valores mientras probé la API usando el cartero y funcionó como se esperaba. Estoy usando axios para conectar ReactJS a la API y expresar en código nodejs ReactJS:
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 })código nodejs:
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) }) })En axios debes enviar los datos en cuerpo. Agregue el ID de usuario y el ID de grupo en el elemento formData().