Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

305
Visualizações
¿Por qué una función proporcionada por require no está definida en una instancia de clase?

Estoy preguntando esto principalmente como una verificación de cordura, no estoy seguro si cometí un error en alguna parte o si esto fundamentalmente no funciona.

Estoy convirtiendo algo de Java a Nodejs. Una clase llamada Site se completa desde una base de datos a través de la función dataFunctions.getSiteInfo(id). También almacena una lista de instancias de página.

El problema es que dataFunctions regresa como indefinido cuando se crea una instancia de Site.

¿He entendido mal cómo funcionan las clases y los módulos en este caso? ¿Es posible que las instancias de esta clase accedan al módulo de funciones de datos? Del mismo modo, ¿es posible que la clase Site también haga referencia a la clase Page? ¿O he cometido algún otro error tonto?

Sitio.js

 let Page = require('./Page.js'); let dataFunctions = require('../DataFunctions.js'); module.exports = class Site { constructor(id) { this.id = id; this.pages = []; console.log(dataFunctions); this.siteInfo = dataFunctions.getSiteInfo(id);

Funciones de datos.js

 let Site = require('./classes/Site.js'); function makeASite() { let id = 2; let site = new Site(id); } function getSiteInfo(id) { etc etc } module.exports = { getSiteInfo: function (id) { return getSiteInfo(id); }, };
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Según el código proporcionado, creo que olvidó crear una nueva instancia de dataFunctions de datos.

 const df = new dataFunctions(); console.log(df);

Si dataFunctions proporciona funciones estáticas, asegúrese de que el método getSiteInfo sea estático.

De lo contrario, es posible que se necesiten detalles adicionales.

Editar

Parecía que la estructura del proyecto y las rutas require eran inestables, pero es difícil saberlo.

Cuando ejecuto el código provisto usando la estructura del proyecto inferida por las declaraciones require , no puedo reproducir su problema.

Sin embargo, un problema que veo es que requiere el módulo Site.js del módulo DataFunctions.js y requiere el módulo DataFunctions.js del módulo Site.js , creando dependencias circulares. Intente eliminarlos moviendo makeASite al módulo Site.js , por ejemplo.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda