我想构建一个包含文件夹中所有文件名的json文件,下面的代码有什么问题?
const iconsFolder = './resources/assets/icons';
const fs = require('fs');
const jsonfile = require('jsonfile');
let json = [];
fs.readdirSync(iconsFolder, [], (err, files) => {
files.forEach(file => {
json.push({'name': file.split('.')[0]})
});
})
console.log(json); // empty array?
答案 0 :(得分:2)
readdirSync
返回文件。您正试图通过永远不会被调用的回调来访问它。您将获得它作为返回值:
var files = fs.readdirSync(iconsFolder, []);
files.forEach(file => {
json.push({'name': file.split('.')[0]})
});
也许您正在尝试使用异步的fs.readdir:
fs.readdir(iconsFolder, [], (err, files) => {
files.forEach(file => {
json.push({'name': file.split('.')[0]})
});
console.log(json);
})
答案 1 :(得分:0)
如果要使用readdirSync,代码应为
let json = [];
let files = fs.readdirSync(iconsFolder);
files.forEach(file => {
json.push({'name': file.split('.')[0]})
});
或者如果您想使用回调,代码应为
let json = [];
fs.readdir(iconsFolder, (err, files) => {
files.forEach(file => {
json.push({'name': file.split('.')[0]})
});
});