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

94
Views
¿Cómo exportar el módulo con sus submódulos en NodeJS?

Quiero crear una biblioteca Velbus (domótica) para importar en cualquier proyecto con Node.JS. Sin embargo, hay muchas funciones (a veces 6 o más) en cada tipo de módulo Velbus, por lo que quiero dividir mi biblioteca real en submódulos (primitives_blind.js, natives_relay.js, natives_tempSensor.js, etc.) Puedo importarlos en mi biblioteca principal VelbusLib.js, pero no sé cómo permitir que un usuario solo importe mi módulo principal, pero use la función de los submódulos.

Ejemplo: primitivos_ciegos.js

 function blindUP(adr, part) { ... } function blindDOWN(adr, part) { ... } function blindStatus(adr, part) { ... } module.exports = { blindUP, blindDOWN, blindStatus }

VelbusLib.js

 const blind = require('./primitives_blind.js')

index.js (una aplicación)

 const velbusLib = require('./VelbusLib.js') ... velbusLib.blindUP(0x40, 1) // blind.blindUP() not wanted, because user have to import all submodules

Por supuesto, no es posible exportar la función importada

 module.exports = { CheckSum, Cut, // blindUP or blind.blindUP aren't possible

Un pequeño esquema a menudo es mejor que una larga discusión: ingrese la descripción de la imagen aquí ¿Alguien puede explicarme el "Estado del arte" sobre esto? Gracias :)

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Sospecho que está buscando la sintaxis de propagación literal del objeto

 const blind = require('./primitives_blind.js') module.exports = { CheckSum, Cut, ...blind, };

que esencialmente hace lo mismo que

 const blind = require('./primitives_blind.js') module.exports = { CheckSum, Cut, blindUP: blind.blindUP, blindDOWN: blind.blindDOWN, blindStatus: blind.blindStatus, };

Sin embargo, dado que estaba preguntando por el estado del arte: use la sintaxis del módulo ES6 para toda la biblioteca, ¡no el módulo module.exports ! Con eso seria

 export * from './primitives_blind.js';
about 4 years ago · Santiago Trujillo Report

0

Después de mucha investigación, parece que no está implícito tener muchos submódulos (ModA, ModB, ModC) e importar un módulo ModX en una aplicación "APP" y usar Importar ModA, ModB, ModC desde él.

Sin embargo, es posible exportar desde ModX, algunas importaciones desde ModA o ModB o ModC:

En ModX.js:

 import {actionA1, actionA2} from './ModA' import ModB from './ModB' import * from './ModC' ... export { actionA2, ModB }

Luego en app.js:

 import ModX from './ModX' ... let Foo = actionA2(something) let Bar = ModB.actionB(somethingElse)

Gracias @bergi por su corrección.

about 4 years ago · Santiago Trujillo Report
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!