Hoy me ocurrió que debía enviar datos en POST a mi socket.io desde PHP con la librería CURL y tuve 2 inconvenientes:

  1. Me generaba un mensaje Cannot POST /
  2. req.body undefined

El primer problema es porque no había definido la ruta por lo que «Me generaba un 404» porque no existía coloqué esto:

app.post('/emit', function (req, res) {
...
}

Luego ya funcionó pero no me reibía ningún dato de POST:

Node - console.log(req.body) -undefined

Solución instalar el paquete body-parser en Node:

$ npm install body-parser

En los imports de  mi aplicación:

const bodyParser = require('body-parser');

En el cuerpo de mi aplicación:

app.use(bodyParser.json()); // body en formato json
app.use(bodyParser.urlencoded({ extended: false })); //body formulario

Dentro de la función donde quería rescatar los datos enviados vía POST:

app.post('/emit', function (req, res) {
   io.sockets.emit("update", req.body);
   res.json('OK'); //Respondo y cierro conexión
});

Ya con esto todo me fue bien y puedo recibir y enviar esos datos con mi Socket.io

Espero les haya servidor de ayuda. @programandoweb

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *