Foros del Web » Programando para Internet » Node.js »

modelos en express

Estas en el tema de modelos en express en el foro de Node.js en Foros del Web. Hola buenas estoy utilizando express y para las consultas a mi base de datos he creado un modelo por así decirlo, cree en javascript una ...
  #1 (permalink)  
Antiguo 22/08/2015, 17:33
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 12 años, 11 meses
Puntos: 11
modelos en express

Hola buenas estoy utilizando express y para las consultas a mi base de datos he creado un modelo por así decirlo, cree en javascript una clase en la cual pongo las funciones con las que voy a realizar consultas a la base de datos, la cosa es que todo funciona perfecto pero no logro retornar el valor ejemplo
Código Javascript:
Ver original
  1. Model.prototype.comprobar = function ()
  2. {  
  3.     Database.instance.query('SELECT * FROM usuarios',function (err, rows, fields){
  4.         return rows; // este es el que quiero return
  5.     });
  6.     return rows; // pero no puedo lograr pasarlo para aca
  7. }

desde mi controlador

Código Javascript:
Ver original
  1. var Model = new Model();
  2.  
  3. console.log(Model.comprobar()); // no existe rows

he intentado de todas formas favor si alguien me puede ayudar

Última edición por xlos_mas_pro; 22/08/2015 a las 17:39
  #2 (permalink)  
Antiguo 24/08/2015, 09:53
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: modelos en express

Eso es por que es asíncrono, deberías hacer algo así:

Código Javascript:
Ver original
  1. Model.prototype.comprobar = function (cb) {  
  2.     Database.instance.query('SELECT * FROM usuarios', cb);
  3. };
  4.  
  5. model = new Model();
  6. model.comprobar(function(err, rows) {
  7.   console.log(rows);
  8. });

De igual manera tu código tiene algunos errores conceptuales. Yo lo que te recomendaría es que usases un ORM, por ejemplo http://bookshelfjs.org/ o http://docs.sequelizejs.com/en/latest/

Saludos
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 24/08/2015, 16:42
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 12 años, 11 meses
Puntos: 11
Respuesta: modelos en express

Gracias Amigo,
Por que algunos errores conceptuales como cuales? Para poder corregirlos ?
Gracias
  #4 (permalink)  
Antiguo 24/08/2015, 16:46
Avatar de xlos_mas_pro  
Fecha de Ingreso: mayo-2011
Ubicación: Santiago
Mensajes: 359
Antigüedad: 12 años, 11 meses
Puntos: 11
Respuesta: modelos en express

Lo que pasa es que no queria incluir las acciones con la base de datos dentro de las routes entonces las separe en una clase aparte ?
Cual seria el error ?
  #5 (permalink)  
Antiguo 25/08/2015, 10:32
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 1 mes
Puntos: 1329
Respuesta: modelos en express

No está mal hacer eso, de hecho es lo más recomendable. Pero es aún más recomendable que no reinventes la rueda, un ORM te da todo eso, tomando en cuenta cosas que probablemente ni hayas pensado.

De los errores conceptuales, deberías ver si tu modelo devuelve un set de resultados no tiene por que ser método del prototipo, debería ser un método estático de la clase. Por lo menos como convención.

Saludos
__________________
Grupo Telegram Docker en Español

Etiquetas: express, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:22.