我基本上是使用Node.js编写一个.json文件,为此我想根据我的"n"
编写一个新文件aArray
次,但是我的问题是它总是显示最后位置(third.json
)。只要创建文件,有什么办法可以继续进行下一个迭代?
我想要的输出是使用数组名称创建每个.json文件
first.json
second.json
third.json
aData={ ..... }
var aArray=["first.json","second.json","third.json"];
for(var i in aArray){
fs.writeFile(aArray[i], JSON.stringify(aData, null, 4), 'utf8', function (err) {
if (err) {
console.log("An error occured while writing JSON Object to File.");
console.log(err);
resolve(true);
}
resolve(true);
console.log("JSON file has been saved.");
});
}
答案 0 :(得分:0)
您可以使用writeFileSync。
aData={ ..... }
var aArray=["first.json","second.json","third.json"];
for(var i in aArray) {
fs.writeFileSync(aArray[i], JSON.stringify(aData, null, 4), 'utf8')
}
文档:https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options
编辑: 如果您想学习新东西,请尝试
aData={ ..... }
var aArray=["first.json","second.json","third.json"];
var recurringFunc = function() {
if (aArray.length) {
var fileName = aArray.shift();
fs.writeFile(fileName, JSON.stringify(aData, null, 4), 'utf8', function (err) {
if (err) {
console.log('An error occured while writing JSON Object to File - ' + fileName);
console.log(err);
} else {
console.log(fileName + 'file has been saved.');
}
recurringFunc();
}
}
}
recurringFunc();