javascript - node.js 的 readdirSync 什么都不输出

标签 javascript node.js

我想在一个文件夹中构建一个包含所有文件名的 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?

最佳答案

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);
})

关于javascript - node.js 的 readdirSync 什么都不输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43036761/

相关文章:

javascript - 在 fullcalendar 中禁用过去日期的 dayclick 无法正常工作

php - SWFUpload上传脚本

javascript - 将文本框值附加到表单操作 URL

javascript - 如何防止Chrome和Firefox长时间消耗大量内存?

javascript - jQuery($) 在模块文件中不可用

javascript - 我是否打算提交 yarn 的 `.pnp.js` 文件?

javascript - FormPanel 上的按钮未显示

node.js - 如何在 Node.js Web 应用程序中管理 MongoDB 连接?

javascript - 为什么要计算回调?

javascript - node.js 中长进程的最大执行时间