所以我有一个目录,其中我有几个以"创建日期和时间"命名的 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(相同的操作,但同步。
希望对您有所帮助,
此致敬意