Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

133
Vistas
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 la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda