Доступ к переменным из моего index.js в другом файле - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь заставить немного кода выполняться так, как если бы он был в index.js моего приложения nodejs. У меня есть следующий код:

index.js

var data = [];
function populateData(){
   for(var i = 0; i < 100; i++){
      data.push(i);
   }
}
populateData();
require('./other.js')();

other.js

module.exports = function(){
   console.log(data);
}

Однако это говорит мне, что данные не определены. Есть ли способ прочитать переменную данных, как это? Я пытался

require('./other.js').apply(null);

и

require('./other.js').apply(this);

Однако ни у меня не получилось

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

Вы можете передать данные в файл следующим образом:

index.js

var data = [];
function populateData() {
  for (var i = 0; i < 100; i++) {
  data.push(i);
  }
}
populateData();
require('./other.js')(data);

other.js

module.exports = function(data) {
  console.log(data);
};
0 голосов
/ 30 октября 2019

Используйте другой модуль для общей переменной.

  • common.js
module.exports = {
  data: []
}
  • index.js
const common = require('./common');
const other = require('./other');

function populateData(){
   for(var i = 0; i < 100; i++){
      common.data.push(i);
   }
}
populateData();
other.test();

  • other.js
const common = require("./common");

module.exports = {
    test: function(){
       console.log(common.data);
    }
}
...