我有app.js
var List = {};
var Entity = require('./entity.js');
var main = new Entity(); // should be changed List
console.log(List) // still empty
和entity.js
class Entity {
constructor(){
this.id = Math.random();
List[this.id] = this; // List == undefined
}
}
module.exports = Entity;
如何使用 List 作为全局变量?
最佳答案
只需在 entity.js
中导入 List
即可:
app.js 末尾:
module.exports = List;
在entity.js的开头:
const List = require('./app.js');
如果您的 app.js
还需要导出其他内容,请改为导出具有 List
属性的对象:
app.js 末尾:
module.exports.List = List;
在entity.js的开头:
const List = require('./app.js').List;
您还可以考虑将 List
放入其自己的模块中,app.js
和 entity.js
都导入。
不要将 List 设置为全局变量,如果可能的话 - 与模块系统一起工作,没有全局污染的显式依赖是模块系统的一大优势优点。
关于javascript - Node.js 使用模块中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54879247/