节点:从另一个js文件导入对象数组?

在一个名为data.js的文件中,我有一个大对象数组:

var arr = [ {prop1: value, prop2: value},...] 

我想使用这个数组到我的Node.js应用程序,但代码像

 require('./data.js') 

没有帮助。 我知道如何导出函数 ,但是当涉及到“导入” 数组时,我已经迷失了方向。 如何将data.js文件添加到我的app.js?

局部variables(var whatever)不会被导出并且是本地的。 你可以在exports对象上定义你的数组,以便导入它。 如果你的数组只包含简单的对象,你也可以创build一个.json文件。

data.js:

 module.exports = ['foo','bar',3]; 

import.js

 console.log(require('./data')); //output: [ 'foo', 'bar', 3 ] 

[编辑]

如果你需要一个模块(第一次),它的代码被执行,并且导出对象被返回并被caching。 对于require()所有进一步调用,只返回caching的上下文。

您仍然可以从模块代码中修改对象。 考虑这个模块:

 module.exports.arr = []; module.exports.push2arr = function(val){module.exports.arr.push(val);}; 

和调用代码:

 var mod = require("./mymodule"); mod.push2arr(2); mod.push2arr(3); console.log(mod.arr); //output: [2,3] 

我知道如何导出函数,

通过修改module.exportsexports ,一个数组或者真正的任何值都可以像function一样被导出:

 var arr = [ {prop1: value, prop2: value},...]; exports.arr = arr; 
 var arr = require('./data').arr; 

您可以直接从NODEJS中的任何文件获取JSON或JSON数组,无需从JS脚本中导出它

  [ { prop1: value, prop2: value }, { prop1: val, prop2: val2 }, ... ] 

将它存储到一个JSON文件假设test.json

现在,您可以将其导出为如下所示,非常简单。

 let data = require('./test.json');