Error JSON.parse [Object Object]

publicado por: Anonymous

tengo este código el cual envio a un Websocket.

 var msg = { 

                        "mensaje": "NUEVO REQ",
                        "titulo":titulo,

                        "data":
                        {
                            "tipo":tipo,
                            "cod_usuario": usuarioFinal ,
                            "cod_requerimiento": idIngresada,
                        }


                    };

                    WS.send(JSON.stringify(msg));

                });

y en el websocket lo recibe así

  ws.on('message', message => { //Recibe mensaje
    console.log(`Mensaje Recibido => ${JSON.parse(message)}`); //Lo muestra en consola

    wss.broadcast(message);
})

el problema es que en la consola me lo muestra así

Mensaje Recibido => [object Object]

solución

Al utilizar el literal template: Mensaje Recibido => ${JSON.parse(message)} estás tratando JSON.parse(message) como una expresión que eventualmente retornará una string o algún valor concatenable a una string;
no obstante, JSON.parse te está transformando la string recibida en el objeto correspondiente (que es lo que hace y debería hacer…). En ese caso:

console.log(`Mensaje Recibido => ${JSON.parse(message)}`);

debería ser:

console.log(`Mensaje Recibido => `, JSON.parse(message));

Incluso no sería necesario usar un literal template para ello.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *