Node.js использует переменную из модуля - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть 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 в качестве глобальной переменной

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Вам нужно передать параметр List и получить доступ в конструкторе ...

new Entity(List);

constructor(List){
 ...
0 голосов
/ 26 февраля 2019

Просто импортируйте 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.js и entity.js.

Не делать Список глобальных переменных, если это вообще возможно, - работать с модульной системой, явные зависимости без глобального загрязнения - одно из больших преимуществ модульной системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...