<code>const express = require('express'); const router = express.Router(); const response = require('../../network/response'); const cont...

Yherard Rojas

Yherard Rojas

Pregunta
student
hace 4 años
const express = require('express'); const router = express.Router(); const response = require('../../network/response'); const controller = require('./controller') router.get('/', function(req,res){ controller.getMessage() .then((messageList) =>{ response.success(req, res, messageList, 200) }) .catch(e =>{ response.error(req, res, "Unexpected Error", 500, e) }) }); router.post('/', function(req,res){ controller.addMessage(req.body.user, req.body.message) .then((fullMessage) =>{ response.success(req, res, fullMessage, 201) console.log(fullMessage) }) .catch(e =>{ response.error(req, res, "Información invalida", 400, "Error para logearse") }) }); module.exports = router;```

const store = require(’./store’)

function addMessage(user, message){

return new Promise((resolve, reject) =>{

if(!user || !message){

console.error("[messageControler] no hay usuario o mensaje")

return reject(“los datos son incorrectos”)

}

const fullMessage = {

user: user,

message: message,

date: new Date()

}

store.add(fullMessage)

resolve(fullMessage);

})

}

function getMessage(){

return new Promise((resolve, reject) =>{

resolve(store.list)

})

}

module.exports = {

addMessage,

getMessage

};

const list = []; function addMessage(message){ list.push(message) }; function getMessage(){ return list; } module.exports = { add: addMessage, list: getMessage, //get //update //delete }``` tengo una consulta, no me esta devolviendo la lista de mensajes cuando los creo y la verdad no termino de ver por que no me la trae, si alguien me puede ayudar, porque sigo el circuito del código y debería traerme la lista de mensajes. muchas gracias
2 respuestas
para escribir tu comentario
    Khevin Efraín

    Khevin Efraín

    student
    hace 4 años

    Sucede porque en la función getMessages del controller.js al resolver la promesa olvidaste el paréntesis para que se ejecute y se pase la lista de mensajes.

    Daniel Adolfo Ordoñez Rubio

    Daniel Adolfo Ordoñez Rubio

    student
    hace 4 años

    Hola, Yherard :) Podrías revisar si estás devolviendo una promesa en lugar del valor que resuelve. Para asegurar que el código sigue la lógica que esperas, puedes usar

    console.group
    para mostrar en la consola las funciones, por ejemplo
    console.group('getMessage')
    para saber cuándo se ejecuta y qué se ejecuta dentro.

Curso de Backend con NodeJS

Curso de Backend con NodeJS

Implementa la lógica de un chat capaz de escalar tanto como tú requieras en tiempo real con Node.js, el runtime environment que te permite ejecutar JavaScript fuera del navegador. Aprende a escribir JavaScript en el servidor. Domina buenas prácticas, aplica arquitectura del lenguaje y entiende las ventajas de Node.js con Platzi.

Curso de Backend con NodeJS

Curso de Backend con NodeJS

Implementa la lógica de un chat capaz de escalar tanto como tú requieras en tiempo real con Node.js, el runtime environment que te permite ejecutar JavaScript fuera del navegador. Aprende a escribir JavaScript en el servidor. Domina buenas prácticas, aplica arquitectura del lenguaje y entiende las ventajas de Node.js con Platzi.