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

97
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
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