Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

134
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!