你能从一个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');
在后一种情况下, personJack
和personJohn
会引用你的类。