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

van*_*353 13 node.js express

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

var arr = [ {prop1: value, prop2: value},...]
Run Code Online (Sandbox Code Playgroud)

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

require('./data.js')
Run Code Online (Sandbox Code Playgroud)

没有帮助.我知道如何导出函数,但在"导入" 数组时我迷失了.如何将data.js文件添加到我的app.js?

muf*_*fel 21

局部变量(var whatever)不会导出并且是模块的本地变量.您可以在exports对象上定义数组,以允许导入它.如果您的数组只包含简单对象,您也可以创建.json文件.

data.js:

module.exports = ['foo','bar',3];
Run Code Online (Sandbox Code Playgroud)

import.js

console.log(require('./data')); //output: [ 'foo', 'bar', 3 ]
Run Code Online (Sandbox Code Playgroud)

[编辑]

如果您需要一个模块(第一次),则执行其代码并返回并缓存exports对象.对于所有进一步的调用require(),仅返回缓存的上下文.

但您可以从模块代码中修改对象.考虑这个模块:

module.exports.arr = [];
module.exports.push2arr = function(val){module.exports.arr.push(val);};
Run Code Online (Sandbox Code Playgroud)

并调用代码:

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


Har*_*and 6

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

    [ {
        prop1: value, 
        prop2: value
      },
      {
        prop1: val,
        prop2: val2
      },
      ...
   ]
Run Code Online (Sandbox Code Playgroud)

将其存储到 JSON 文件(假设为test.json)

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

let data = require('./test.json');
Run Code Online (Sandbox Code Playgroud)


Jon*_*ski 5

我知道如何导出函数,[...]

function通过修改module.exports或,可以像s一样导出数组或任何值exports

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

exports.arr = arr;
Run Code Online (Sandbox Code Playgroud)
var arr = require('./data').arr;
Run Code Online (Sandbox Code Playgroud)