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

93
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar
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