Estoy usando nodejs para hacer que un servidor se conecte con una base de datos y un sitio web simple, puedo hacer una búsqueda GET y tomo los datos, pero cuando hago una búsqueda POST, mi servidor recibe y vacía request.body. Intento 2 diferentes versiones de nodejs 12.16.1 y 16.10.0 también uso express y body-parser y obtuve el mismo resultado.
Esta es mi configuración en el sitio del servidor
const express = require('express'); const morgan = require('morgan'); const app = express(); const router = require('../routes/routes.js'); /**configuraciones */ app.set('port',3000); app.use(morgan('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(router); app.listen(app.get('port'), () =>{ console.log("El server esta operativo ") });
Este es mi código en el sitio web
var username = document.getElementById('user-reg'); var emailreg = document.getElementById('email-reg'); var btnReg = document.getElementById('btn-reg') btnReg.addEventListener('click', sacarInformacion) function sacarInformacion(){ var user = username.value var email = emailreg.value var jsonString = `{"correo": "${email}", "nombre":"${user}"}` const options = { method : 'POST', mode: 'no-cors', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json', }, body: JSON.parse(jsonString) } fetch('http://localhost:3000/to', options); console.log(JSON.parse(jsonString)) //i catch in the console the data i pass on body }
El principal problema es que utilicé cartero como API y obtengo el cuerpo en el servidor, pero cuando lo uso en el sitio web obtengo un cuerpo vacío.