NodeJS遍历文件夹生成JSON:自动化处理图片路径

3 下载量 134 浏览量 更新于2024-08-30 收藏 82KB PDF 举报
本文介绍了如何使用Node.js将一个文件夹按照其层级结构转换成一个JSON对象,以便于在前端进行请求和渲染。这个方法主要是为了自动化处理文件夹中的大量文件,避免手动编写繁琐的代码。 需求描述: 在项目开发中,作者需要将文件夹内的图片文件引用到前端页面上。为了避免手动添加每个文件的路径,作者决定编写一个脚本,将文件夹的整个路径结构转化为JSON,这样前端可以方便地通过请求这个JSON数据来动态加载图片。 文件夹结构: - 一级路径:test - 二级路径:A, B, C... (共13个文件夹) - 三级路径:每个二级路径下有3-8个文件夹不等 - 四级路径:a.jpg, b.jpg, c.jpg等数量不等的图片文件 实现思路: 1. 定义一个全局变量`obj`,它是一个数组,用于存储文件夹结构信息。 2. 使用递归遍历目录,当遇到文件夹时,创建一个对象,包含文件夹名`name`和一个空数组`list`,用于存放子路径信息。 3. 继续递归,直到找到文件。将文件名`name`和完整路径`src`添加到所属的`list`中,形成如下的结构: ```json { name: 'fileName', list: [ { name: 'fileName', src: 'filePath' } ] } ``` 实践代码: 使用Node.js的`fs`和`async`模块来实现这一功能。首先,定义一个辅助方法`distinct`用于去除重复的文件夹名,然后通过`fs.readdir`读取目录,对每个文件或子目录调用`fs.stat`检查其类型,并根据类型执行相应的操作(递归或添加到结果数组)。具体代码没有完全给出,但在实际应用中,这会涉及到异步操作的管理和路径的构建。 总结: 通过Node.js实现的这个功能,可以极大地提高工作效率,尤其在处理大量文件时。递归遍历文件系统,构建JSON结构,使前端可以轻松地获取并显示文件列表,降低了开发复杂度,体现了编程自动化处理问题的核心理念。