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

138
Visualizações
Cómo cargar scripts desde archivos en el tiempo de ejecución de javascript

He escrito una clase que puede cargar secuencias de comandos desde archivos en el tiempo de ejecución y luego puede ejecutar esas secuencias de comandos, esencialmente un sistema de complemento.

 class Broker { constructor(){ this.requests = require("../../plugins/sync/core") } }

Los scripts también importarán esta clase, ya que amplían las capacidades de la clase.

 const { Broker } = require("../../core/Broker"); module.exports = { isConnectableNode: { minRole: 2, script: async (data) => { ... let node = Broker.findNode(data.nodeID); // ERROR: Broker is undefined ... }, },...

El script se llama en esta función dentro de la clase Broker:

 async handleRequest(handler, data, user) { try { if (this.requests[handler].minRole >= user.role) { const res = await this.requests[handler].script(data); return res; } else { return { status: 401, message: "Not authorized." }; } } catch (e) { return { status: 400, message: "Unknown Request." }; } }

Lo que funciona es llamar a una función que establece this.requests desde handleRequest() cuando está vacío o no inicializado.

 if (!this.requests) this.loadPlugins();

Ahora todas las importaciones están correctamente cargadas y disponibles para los scripts.

¿Alguien sabe la razón por la que esto solo funciona cuando se requiere desde el cierre de la función del controlador y no el constructor o realmente en cualquier lugar externo?

about 4 years ago · Juan Pablo Isaza
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