你能从一个Nodejs模块导出多个类吗?

目前,我有4个子类在他们自己的文件中。 我要求他们都在同一个文件中。 我想知道是否可以在一个模块中包含所有这4个类。 目前,我正在像这样导入它们

var Jack = require('./Jack.js'); var JackInstance = new Jack(); var Jones = require('./Jones.js'); var JonesInstance = new Jones(); 

我想要像这样导入它们

 var People = require('./People.js'); var JackInstance = new People.Jack(); 

甚至

 var Jack = require('./People.js').Jack; var JackInstance = new Jack(); 

我的类是这样定义的

 class Jack{ //Memeber variables, functions, etc } module.exports = Jack; 

是的,你可以导出多个类。

例如People.js

 class Jack{ //Memeber variables, functions, etc } class John{ //Memeber variables, functions, etc } module.exports = { Jack : Jack, John : John } 

而且,您可以像正确提到的那样访问这些类。

 var People = require('./People.js'); var JackInstance = new People.Jack(); var JohnInstance = new People.John(); 

您也可以使用解构赋值 (从Node.js v6.0.0开始,本机支持)以较短的forms执行此操作:

 // people.js class Jack { // ... } class John { // ... } module.exports = { Jack, John } 

input:

 // index.js const { Jack, John } = require('./people.js'); 

或者甚至像这样如果你想别名需要分配:

 // index.js const { Jack: personJack, John: personJohn, } = require('./people.js'); 

在后一种情况下, personJackpersonJohn会引用你的类。