NodeJs 中内置了许多有用的模块,无需下载依赖引入即可使用。
// 内置模块 无需下载依赖const fs = require('fs');
复制代码
fs 模块
用于操作文件/文件夹 例如写入文件,内容追加,创建文件夹,删除文件等多种操作。
上篇文章记录了 nodejs 使用 koa 框架上传图片。
那么既然有了上传,就应该有删除文件。
// 使用同步api 如果文件不存在 异常会报错fs.rmSync('要删除的文件路径');
// 也可通过参数 忽略异常fs.rmSync('要删除的文件路径', { force: false })
复制代码
个人使用场景
1,新增数据,上传图片后使用保存后的路径,以及其他参数,保存数据库插入数据。
2,删除或更新数据时,如果之前上传的图片不清理掉,那么时间一长,数据一多,更不可能随意删除,会直接导致数据出问题。
所以,我选择了删除/更新数据库数据之后,同时删除/更新对应的文件。少占用存储空间,也减少垃圾文件。
// 引入path模块const path = require('path');
复制代码
path 模块
用于对路径执行一些格式化(根据系统环境),又如路径拼接等操作。
path.basename
// 获取目录路径下文件path.basename('/文件夹/文件夹/图片.jpg'); // 返回 图片.jpg
// 也可只保留文件名称 去除后缀名 第二个参数 要去除的尾部部分path.basename('/文件夹/文件夹/图片.jpg', '.jpg'); // 返回 图片
复制代码
path.dirname
// 返回目录路径path.dirname('/目录1/目录2/目录3'); // 返回 目录2path.dirname('/目录1/目录2/目录3/');// 返回 目录2path.dirname('/目录1/目录2/目录3/图片.jpg');// 返回 目录3
复制代码
path.extname
// 获取扩展名 (也可理解为 小数点最后出现的位置一直到字符串结尾)path.extname('/public/img/a.jpg'); // 返回 .jpgpath.extname('/public/img/b.html'); // 返回 .html// 如果小数点出现在第一位且之后没有小数点 返回空字符串path.extname('./abc'); // 返回 ''// 如果小数点出现在最后 只返回小数点path.extname('index.'); 返回 .
复制代码
path.join
// 最常用的拼接 (格式跟随当前系统环境)path.join('/目录1', '目录2', '目录3'); // /目录1/目录2/目录3
// 也可获取当前执行脚本的目录 与其他位置拼接
// 假设当前处于 /home/目录2 且/home下存在 目录1path.join(__dirname, '../目录1'); 返回 /home/目录1path.join(__dirname, '../'); 返回 /hom
复制代码
全局变量
__dirname 当前文件夹具体路径 例如 /home
__filename 当前文件具体路径 例如 /home/index.js
以上是两个模块 常用的方式。
具体还是要根想实现的功能有直接关系。
关键词:前端培训
评论