node.js - parameter - ¿Puedes exportar múltiples clases desde un solo módulo Nodejs?
node js export function with parameter (2)
Sí, puedes exportar múltiples clases.
por ejemplo, People.js
class Jack{
//Memeber variables, functions, etc
}
class John{
//Memeber variables, functions, etc
}
module.exports = {
Jack : Jack,
John : John
}
Y, puede acceder a estas clases como ha mencionado correctamente.
var People = require(''./People.js'');
var JackInstance = new People.Jack();
var JohnInstance = new People.John();
Actualmente, tengo 4 Clases para niños cada una en su propio archivo. Los estoy solicitando a todos en el mismo archivo. Me pregunto si puedo contener las 4 clases en un solo módulo. Actualmente, los estoy importando así.
var Jack = require(''./Jack.js'');
var JackInstance = new Jack();
var Jones = require(''./Jones.js'');
var JonesInstance = new Jones();
Me gustaría importarlos así
var People = require(''./People.js'');
var JackInstance = new People.Jack();
O incluso
var Jack = require(''./People.js'').Jack;
var JackInstance = new Jack();
Mis clases se definen asi
class Jack{
//Memeber variables, functions, etc
}
module.exports = Jack;
También puede hacer esto en una forma más corta, utilizando las tareas de desestructuración (que son compatibles de forma nativa a partir de Node.js v6.0.0 ):
// people.js
class Jack {
// ...
}
class John {
// ...
}
module.exports = { Jack, John }
Importador:
// index.js
const { Jack, John } = require(''./people.js'');
O incluso de esta manera, si quieres un alias requiere asignaciones:
// index.js
const {
Jack: personJack, John: personJohn,
} = require(''./people.js'');
En este último caso, personJack
y personJohn
harán referencia a tus clases.
Una palabra de advertencia:
La destrucción puede ser peligrosa en el sentido de que es propenso a producir errores inesperados. Es relativamente fácil olvidar los corchetes en la export
o incluirlos accidentalmente cuando se require
.