Estoy haciendo un sistema de votación simple usando ajax.
aqui esta el codigo...
// Receving The Votes app.post('/submitvote', (req, res) => { // req.body, body is undefined // should be: { choice: 2 }, 2 is just an example console.log(req.body); });Este código guarda el voto del juez en una variable solo para probar. Pero el cuerpo (donde está la elección) no está definido
echemos un vistazo al lado del cliente...
var picked = 0 function voteto(plr) { +plr; picked = plr; console.log(`Picked Player #${plr}`) if (plr == 1) { document.getElementById('plr1').style.backgroundColor = 'blue'; } else { document.getElementById('plr1').style.backgroundColor = 'darkblue'; } if (plr == 2) { document.getElementById('plr2').style.backgroundColor = 'blue'; } else { document.getElementById('plr2').style.backgroundColor = 'darkblue'; } if (plr == 3) { document.getElementById('plr3').style.backgroundColor = 'blue'; } else { document.getElementById('plr3').style.backgroundColor = 'darkblue'; } } $(document).ready(function(){ $("#submit").click(function(){ console.log("Sending Data"); $.post("/submitvote", { choice: picked, }); }); }); La función voteto es un selector para el voto.
Simplemente envío la variable picked en el parámetro de choice (no sé cómo lo llamarías). No hice una devolución de llamada ya que solo lo está guardando.
Pero The Thing Is The Body no está definido. ¿Por qué?
Agregue app.use(express.urlencoded()) en app.js(entrada). ¡Esto funciona para mí!