将 json 文件内容放在数组取消节点 JS 中



所以我有一个目录,其中我有几个以"创建日期和时间"命名的 Json 文件。杰伦 .我想创建一个包含所有 json 内容的数组,这意味着

FIle1.json

文件2....菲伦.json

应该看 [{FIle1.json (content(}, {File2.json},......{Filen.json}]

我是 Node.json 的新手,欢迎任何帮助

更新

所以我列出了我的文件,现在 Icn 无法成功打开它们,这是我的代码:

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

然后当我想打开它们时:

{ [错误: ENOENT: 没有这样的文件或目录,请打开 'revision_2017-04-19T16:26:33+02:00.json'] 错误: -2, 代码: "恩特",

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

谢谢你们

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

为此,您可以使用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范围,所以你可以使用Promises,或者使用以下方法:

  • fs.readFileSync
  • fs.readdirSync

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

希望对您有所帮助,
此致敬意

最新更新