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'); // 返回 目录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

以上是两个模块 常用的方式。

具体还是要根想实现的功能有直接关系。

posted @ 2022-02-09 10:38  Linux运维阿铭  阅读(166)  评论(0编辑  收藏  举报