Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js使用模块中的变量_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript Node.js使用模块中的变量

Javascript Node.js使用模块中的变量,javascript,node.js,ecmascript-6,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 class Entity { constructor(){ this.id = Math.random(); List[this.id] = this; // List == undefi

我有app.js

var List = {};
var Entity = require('./entity.js');
var main = new Entity(); // should be changed List
console.log(List) // still empty
class Entity {
  constructor(){
    this.id = Math.random();
    List[this.id] = this; // List == undefined
  }
}
module.exports = Entity;
entity.js

var List = {};
var Entity = require('./entity.js');
var main = new Entity(); // should be changed List
console.log(List) // still empty
class Entity {
  constructor(){
    this.id = Math.random();
    List[this.id] = this; // List == undefined
  }
}
module.exports = Entity;

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

只需在
entity.js
中导入
List

在app.js的末尾:

module.exports = List;
module.exports.List = List;
在entity.js的开头:

const List = require('./app.js');
const List = require('./app.js').List;
如果您的
app.js
还需要导出其他内容,请使用
List
属性导出对象:

在app.js的末尾:

module.exports = List;
module.exports.List = List;
在entity.js的开头:

const List = require('./app.js');
const List = require('./app.js').List;

您还可以考虑将<代码>列表<代码>放入其自己的模块中,即<>代码> App.js<代码>和<代码>实体.js<代码>导入.< /p>


如果可能的话,不要将列表设置为全局变量-而是使用模块系统,没有全局污染的显式依赖关系是模块系统的一大优势。

只需在
entity.js中导入
List

在app.js的末尾:

module.exports = List;
module.exports.List = List;
在entity.js的开头:

const List = require('./app.js');
const List = require('./app.js').List;
如果您的
app.js
还需要导出其他内容,请使用
List
属性导出对象:

在app.js的末尾:

module.exports = List;
module.exports.List = List;
在entity.js的开头:

const List = require('./app.js');
const List = require('./app.js').List;

您还可以考虑将<代码>列表<代码>放入其自己的模块中,即<>代码> App.js<代码>和<代码>实体.js<代码>导入.< /p>


如果可能的话,不要将List设置为全局变量-而是使用模块系统,没有全局污染的显式依赖关系是模块系统的一大优势。

您需要在构造函数中传递List param和access

new Entity(List);

constructor(List){
 ...

您需要在构造函数中传递列表参数和访问权限

new Entity(List);

constructor(List){
 ...