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

[SOLUCIONADO] Problema con modelos - has no method

Estas en el tema de Problema con modelos - has no method en el foro de Node.js en Foros del Web. Hola, Estoy mas o menos empezando con NodeJS y tengo un problema al intentar crear un modelo y usarlo. El error que me dá es ...
  #1 (permalink)  
Antiguo 21/07/2013, 16:59
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 14 años
Puntos: 7
Problema con modelos - has no method

Hola,

Estoy mas o menos empezando con NodeJS y tengo un problema al intentar crear un modelo y usarlo.

El error que me dá es que el método obtener_todos no existe.

Aquí mi modelo:

Código Javascript:
Ver original
  1. var db = require('../db');
  2.  
  3. var obtener_todos = function() {
  4.     var obtener = db.query("SELECT * FROM articulos WHERE estado > 0", function(error, articulos){
  5.         if(error){
  6.             console.log(error)
  7.         }
  8.         else
  9.         {
  10.             console.log(articulos)
  11.         }      
  12.     });
  13. };
  14.  
  15. module.exports = obtener_todos;

Aquí el controlador:

Código Javascript:
Ver original
  1. var Articulo = require('../../models/articulo');
  2.  
  3. exports.lista = function(req, res){
  4.     var lista = Articulo.obtener_todos();
  5.     res.render('../views/admin/articulos/lista', {articulos:lista});
  6. };

¿Alguien sabe el por qué no está detectando el método?
__________________
@JaimeMSE - ¡Sígueme!
  #2 (permalink)  
Antiguo 23/07/2013, 08:48
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 16 años, 4 meses
Puntos: 103
Respuesta: Problema con modelos - has no method

Hola jaime, lo que pasa, es que en tu codigo
Código Javascript:
Ver original
  1. module.exports = obtener_todos;
estas exportando una función directamente.
entonces si ejecutas esto
Código Javascript:
Ver original
  1. var lista = Articulo();
en vez de esto
Código Javascript:
Ver original
  1. var lista = Articulo.obtener_todos();

estarias ejecutando la base del modulo, que es la función que exportaste.

lo que te recomiendo es que hagas algo asi tu modulo

Código Javascript:
Ver original
  1. var db = require('../db');
  2. var salida = {};
  3. salida.obtener_todos = function() {
  4.     var obtener = db.query("SELECT * FROM articulos WHERE estado > 0", function(error, articulos){
  5.         if(error){
  6.             console.log(error)
  7.         }
  8.         else
  9.         {
  10.             console.log(articulos)
  11.         }      
  12.     });
  13. };
  14.  
  15.  
  16. module.exports = salida;

entonces, ahi estarias exportando un objeto, con los metodos que quieras!

~Un saludo Jaime
__________________
Hangouts de JavaScript todos los jueves 20hs GMT, Unite !
https://plus.google.com/u/0/108504944676960830886
  #3 (permalink)  
Antiguo 23/07/2013, 08:56
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 14 años
Puntos: 7
Respuesta: Problema con modelos - has no method

Hola,

Justo hace 10 minutos lo he arreglado de la misma manera que me dices e iba a exponerla aquí.
De todas formas, gracias por tu respuesta!
__________________
@JaimeMSE - ¡Sígueme!

Etiquetas: method, modelos
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:32.