2017-05-09 65 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)相同的操作,但是是同步的。

希望它能幫助,
最好的問候,