Javascript Node.js使用模块中的变量
我有app.jsJavascript 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
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){
...