0

Tengo un problema en NodeJS y es que no funciona la clase inicializada fuera del método, en cambio si la inicializo dentro sí funciona. Creo que queda claro sólo viendo el ejemplo:

Así NO funciona:

let MyClass = require("path/my-class");

let CurrentClass = {};

CurrentClass.hello = function(){
     MyClass.method();
}

...

Así funciona:

let CurrentClass = {};

CurrentClass.hello = function(){
     let MyClass = require("path/my-class");
     MyClass.method();
}

...
  • 2
    Así como lo planteas, sin contexto, efectivamente es un misterio. Pero debe haber más factores. Podrías dibujar un arbol de directorios ¿Dónde está `my-class` con respecto a `CurrentClass`? ¿Es un directorio que contiene un `index.js` o es un archivo del cual omites la extensión? ¿Lo que nos muestras se requiere desde otro archivo? En caso afirmativo ¿Cuál es su ubicación respecto de los dos primeros? – ffflabs Sep 12 '18 at 10:20
  • te invito a leer [esta pregunta](https://es.stackoverflow.com/questions/106042/var-let-const-o-nada-en-javascript) – JackNavaRow Sep 12 '18 at 11:20
  • tu clase es estatica?? me es extraño como llamas a la funcion sin antes hacer un new – JackNavaRow Sep 12 '18 at 11:22
  • Gracias por tus comentarios @JackNavaRow Ya averigué que pasaba, tenía una "circular dependencies" dentro de la clase MyClass había otra clase que a su vez tenía importada (aunque no se estaba usando) la clase CurrentClass... Ahora si funciona tanto dentro como fuera de los métodos. Por seguridad NodeJS cuando hay una circular dependencie te devuelve el objeto vacío. Gracias! – KikoPalomares Sep 13 '18 at 11:11
  • genial @KikoPalomares agrega el error a tu pregunta, y respondete diciendo como lo solucionastes! – JackNavaRow Sep 13 '18 at 12:32

1 Answers1

0

Ya averigué que pasaba, tenía una "circular dependencies" dentro de la clase MyClass había otra clase que a su vez tenía importada (aunque no se estaba usando) la clase CurrentClass... Ahora si funciona tanto dentro como fuera de los métodos. Por seguridad NodeJS cuando hay una circular dependencie te devuelve el objeto vacío.