从另一个文件中的index.js访问变量

时间:2019-10-30 17:01:44

标签: node.js scope

我正在尝试执行一些代码,就像在我的nodejs应用程序的index.js中一样。 我有以下代码:

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 :(得分:0)

将另一个模块用于公共变量。

  • common.js
public class TestObject {

    private String name;
    private String secret;

    public String getSecret() {
        if(Utils.isAdmin())
            return secret;

        return null;
    }
    public void setSecret(String secret) {
        this.secret = secret;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
  • index.js
module.exports = {
  data: []
}
  • other.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();

答案 1 :(得分:0)

您可以像这样将数据传递到文件

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);
};