Arrays NodeJS模块导出由类实例化的项数组
在NodeJS中,我实例化了来自两个不同类的两个对象,将它们放入一个数组中,然后使用array.map映射它们。如果我在一个文件中完成这一切,它工作得很好。但是,如果我在另一个文件中创建对象并导出/需要该数组,则该数组是未定义的Arrays NodeJS模块导出由类实例化的项数组,arrays,node.js,class,node-modules,Arrays,Node.js,Class,Node Modules,在NodeJS中,我实例化了来自两个不同类的两个对象,将它们放入一个数组中,然后使用array.map映射它们。如果我在一个文件中完成这一切,它工作得很好。但是,如果我在另一个文件中创建对象并导出/需要该数组,则该数组是未定义的 //code from file ClassA.js: exports.ClassA = class ClassA { constructor(name) { this.name = name; } } //code f
//code from file ClassA.js:
exports.ClassA = class ClassA {
constructor(name) {
this.name = name;
}
}
//code from file ClassB.js
exports.ClassB = class ClassB {
constructor(name) {
this.name = name;
}
}
这种方式有效:
//code from file index.js
const { ClassA } = require("./ClassA");
const { ClassB } = require("./ClassB");
const myClassItem1 = new ClassA('Class A Item');
const myClassItem2 = new ClassB('Class B Item');
const myArray = [];
myArray.push(myClassItem1, myClassItem2);
console.log('array', myArray); //returns: [ ClassA { name: 'Class A Item' }, ClassB { name: 'Class B Item' } ]
console.log(myArray.map(item => item.name)); //returns: [ 'Class A Item', 'Class B Item' ]
//将项实例化分离到不同的文件中不会
//code from file items.js
const { ClassA } = require("./ClassA");
const { ClassB } = require("./ClassB");
const myClassItem1 = new ClassA('Class A Item');
const myClassItem2 = new ClassB('Class B Item');
const myArray = [];
myArray.push(myClassItem1, myClassItem2);
console.log(myArray); //returns: [ ClassA { name: 'Class A Item' }, ClassB { name: 'Class B Item' } ]
exports.myArray;
//code from file index.js
const { myArray } = require('./items');
console.log(myArray); //returns undefined
console.log(myArray.map(item => item.name)) //throws error
问题在于线路
exports.myArray;
它什么也不做;它引用了导出
上不存在的属性,就是它。您需要显式指定给导出对象的属性,这样当文件在别处为required时,您可以使用required对象上的属性查找来获取所需的值:
exports.myArray = myArray;
然后
const { myArray } = require('./items');
将根据需要检索数组
您还可以完全避免使用独立变量,这可能会让事情更清楚:
exports.myArray = [myClassItem1, myClassItem2];
问题在于线路
exports.myArray;
它什么也不做;它引用了导出
上不存在的属性,就是它。您需要显式指定给导出对象的属性,这样当文件在别处为required时,您可以使用required对象上的属性查找来获取所需的值:
exports.myArray = myArray;
然后
const { myArray } = require('./items');
将根据需要检索数组
您还可以完全避免使用独立变量,这可能会让事情更清楚:
exports.myArray = [myClassItem1, myClassItem2];