Tengo un problema con la función fetch post, quiero enviar datos a una url pero no funciona..
function TodoTaskForm () { const taskContentInput = useRef(null) const handleSubmit = async (e) => { e.preventDefault() fetch('/api/tasks', { method: 'POST', body: JSON.stringify({content: taskContentInput.current.value}) }) } return ( <form onSubmit={handleSubmit} className="__component_todolist_form_container"> <input type="text" name="task" ref={taskContentInput} placeholder="nouvelle tâche.."></input> </form> ) }En mi componente, estoy haciendo esto y en mi servidor express:
app.post('/api/tasks', (req, res) => { console.log(req.body) console.log('request received!') })Cuando pruebo, recibo la solicitud pero req.body devuelve "{}" en mi consola, no entiendo, estoy usando app.use(express.json()) pero no funciona, incluso lo intenté usar body-parser pero... Así que por favor, necesito ayuda... ¡gracias!
Necesitas:
body-parse separado.Content-Type en la solicitud que indica en qué formato están los datos para que se pueda activar el analizador de cuerpo correcto.Tal:
app.post('/api/tasks', express.json(), (req, res) => { console.log(req.body) console.log('request received!') })y
fetch('/api/tasks', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({content: taskContentInput.current.value}) })