Tengo este problema porque estoy enviando datos a través de JavaScript usando XMLHttpRequest pero no los recibo en el método de publicación expresa de node.js. No sé qué estoy haciendo mal.
Mi script: el formulario de función se ejecuta al cargar la ventana
function form() { const btn = document.getElementById("save-data"); let currentPage = window.location.href.split("/").at(-1); function sendData(data) { const XHR = new XMLHttpRequest(); XHR.open("POST", window.location.href); XHR.setRequestHeader("Content-Type", "application/json"); console.log(data); // I get right data XHR.send(data); } btn.addEventListener("click", () => { switch (currentPage) { case "settings": const prefix = document.getElementById("prefix").value; let buttonState = document.getElementById("module-state"); if (buttonState.hasAttribute("enable")) { buttonState = "enable"; } else { buttonState = "disable"; } sendData({ prefix: prefix, buttonState: buttonState, announcements: { giveawayChannelID: 123, updateChannelID: 123, }, }); } }); }Mi código Node.js
router.post('/:id/settings', (req, res) => { console.log(req.body) // {} })Ayuda por favor
Debe instalar el paquete body-parser de NPM y solicitarlo en su código
Probar
npm i body-parserLuego, en su secuencia de comandos de nodo principal, exíjalo
const bodyParser = require('body-parser');después de eso, debe configurarlo como un middleware para express
app.use(bodyParser.json()); //Handles JSON requests app.use(bodyParser.urlencoded({ extended: false })); //Handles normal post requests después de estos pasos, puede acceder a valores como req.body.value