在一个名为data.js的文件中,我有一个大对象数组:
var arr = [ {prop1: value, prop2: value},...]
我想将此数组用于我的Node.js应用程序,但代码如
require('./data.js')
无济于事。我知道如何导出函数,但在“导入”数组时我迷失了方向。如何将data.js文件添加到我的app.js?
答案 0 :(得分:17)
本地变量(var whatever)不会导出并且是模块的本地变量。您可以在exports对象上定义数组,以允许导入它。如果您的数组只包含简单对象,也可以创建.json文件。
data.js:
module.exports = ['foo','bar',3];
import.js
console.log(require('./data')); //output: [ 'foo', 'bar', 3 ]
[编辑]
如果您需要一个模块(第一次),则执行其代码并返回并缓存 exports 对象。对于require()
的所有进一步调用,仅返回缓存的上下文。
您仍然可以在模块代码中修改对象。考虑一下这个模块:
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]
答案 1 :(得分:2)
我知道如何导出函数,[...]
通过修改function
或module.exports
,可以将数组或任何值导出为与exports
相同:
var arr = [ {prop1: value, prop2: value},...];
exports.arr = arr;
var arr = require('./data').arr;
答案 2 :(得分:1)
您可以直接从NODEJS中的任何文件中获取JSON或JSON数组 不需要从JS脚本中导出它
[ {
prop1: value,
prop2: value
},
{
prop1: val,
prop2: val2
},
...
]
将其存储到JSON文件中,假设 test.json
现在您可以将其导出为非常简单的下面给出。
let data = require('./test.json');
答案 3 :(得分:1)
您可以简单地将数组包装在函数中。
// myArray.js
export default function iDoReturnAnArray() {
return ['foo', 'bar', 'baz'];
}
// main.js
import iDoReturnAnArray from './path/to/myArray';
const unwrappedArray = iDoReturnAnArray();
console.log(unwrappedArray); // ['foo', 'bar', 'baz']
答案 4 :(得分:0)
我们可以使用解构来解决您的问题。
在file1.js中,我们创建一个对象数组:
var arr = [{ prop1: "beep", prop2: "boop" }];
然后我们执行以下操作以导出:
module.exports = { arr };
然后在另一个文件file2.js中,我们需要file1中的数组
const f1 = require("./file1");
记录结果进行测试
console.log(f1.arr);