Node.js使用模块中的varibale

时间:2019-02-26 05:57:51

标签: javascript node.js ecmascript-6

我有 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;

如何使用列表作为全局变量?

2 个答案:

答案 0 :(得分:2)

只需导入List中的entity.js

在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.jsentity.js都导入的模块中。

不要使List成为全局变量,如果可能的话-与模块系统一起使用,没有全局污染的显式依赖关系是模块系统的主要功能之一优势。

答案 1 :(得分:0)

您需要传递List参数并在构造函数中访问...

new Entity(List);

constructor(List){
 ...