javascript - Node.js 使用模块中的变量

标签 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;

如何使用 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.jsentity.js 都导入。

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

关于javascript - Node.js 使用模块中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54879247/

相关文章:

node.js - npm -g 错误!外来的

ecmascript-6 - ES6 中这两种语法有什么区别?

javascript - 如何在 ruby​​ on Rails 中使用 javascript 获取 datetime_select 字段的值

javascript - jQuery 在 IE 上返回空输入值

javascript - 有没有一种方法可以在一个 onClick 事件中发送 Prop 和函数?

javascript - ES6 动态类名

javascript - ES6 功能模块

javascript - 执行二进制代码

javascript - dom 元素可见性对 javascript 重要吗

javascript - 当我能够更早地引用数组时无法引用数组