2017-05-09 87 views
0

所以我有一个目录,我有几个JSON文件,名称是“创建日期和时间”.JSON。我想创建所有的JSON内容的阵列,这意味着把json文件的内容放在一个数组中unsing节点JS

FIle1.json

文件2。 json 。 。 。 FIlen.json

应该看看[{FIle1.json(内容)},{} File2.json,...... {Filen.json}]

我在节点一个新手。 JSON任何帮助welecomed

UPDATE

所以我把我的文件,现在Icn't成功打开它们,这里是我的代码波纹管:

const testFolder = './report/'; 
const fs = require('fs'); 
fs.readdir(testFolder, (err, files) => { 
    files.forEach(file => { 
    console.log(file); 
    fs.readFile(file, {encoding: 'utf-8'}, function(err, data){ 
     if (err) { 
      console.log(err); 
      throw err; 
     } 
     console.log('result read: ' + data); 
    }); 
    }); 
}) 

而且我得到的结果: 我列出文件:

revision_2017-04-19T16:26:33+02:00.json revision_2017-04-19T16:27:25+02:00.json

然后,当我要打开他们:

{ [Error: ENOENT: no such file or directory, open 'revision_2017-04-19T16:26:33+02:00.json'] errno: -2, code: 'ENOENT',

有没有人有任何想法来解决这个问题?

谢谢你们

+0

多远有什么?你知道如何在Node.js中打开和读取文件吗? – Widor

+0

我仍然不知道如何阅读和打开文件。我对node.js非常陌生 –

+0

我想你应该在这种情况下解决问题。在您知道如何打开和读取文件之前,询问关于连接JSON数组没有任何价值。 – Widor

回答

1

,你所要做的就是列出所有的文件目录,然后打开所有这些,把他们的内容在一个对象。

要做到这一点,你可以使用fs模块(文件系统)列出并打开所有的文件,然后放入一个数组的内容:你是

const fs = require('fs'); 
let myArray = []; 
fs.readdir('./your_directory', (err, files) => { // return an array that contains the names of the files in 'your_directory' 
    files.forEach(file => { // loop over your files 
    fs.readFile(file, {encoding: 'utf-8'}, function(err, data){ // open each file 
     // the data variable represents your JSON file 
     myArray.push(JSON.parse(data)); 
    }); 
    }); 
}); 

在这里,但你可能要回到主JS范围,所以你可以使用的承诺,或者使用下面的方法:

  • fs.readFileSync
  • fs.readdirSync

它们执行与以前的函数(readFile/readdir)相同的操作,但是是同步的。

希望它能帮助,
最好的问候,