Nodejs内置模块path与fs模块简单使用
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'); // 返回 目录2
path.dirname('/目录1/目录2/目录3/');// 返回 目录2
path.dirname('/目录1/目录2/目录3/图片.jpg');// 返回 目录3
path.extname
// 获取扩展名 (也可理解为 小数点最后出现的位置一直到字符串结尾)
path.extname('/public/img/a.jpg'); // 返回 .jpg
path.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下存在 目录1
path.join(__dirname, '../目录1'); 返回 /home/目录1
path.join(__dirname, '../'); 返回 /hom
全局变量
__dirname 当前文件夹具体路径 例如 /home
__filename 当前文件具体路径 例如 /home/index.js
以上是两个模块 常用的方式。
具体还是要根想实现的功能有直接关系。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通