node.js的fs和path模块常用api

167 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情

fs模块

fs

文件系统模块(fs),node的文件系统模块的api集合。

使用

新建ts文件

import * as fs from "fs";
const data = fs.readFileSync("input.txt");
console.log("读取input.txt: " + data.toString());
console.log("程序执行完毕。");

在当前目录新建input.txt就,使用ts-node跑一下就可以看到结果。

fs的api

fs.open(path, flags[, mode], callback) 三个参数,path是路径,flags就是操作权限,比如 r 只读a+ 读取追加模式,如果没有文件则创建,callback回调。

fs.open("input.txt", "r+", (err: NodeJS.ErrnoException | null, fd: number) => {
  console.log(fd);
});
// 异步的输出 3

fs.stat(path, callback), 读取文件的信息。

fs.stat("input.txt", (err, stats: Stats) => {
  if (err) {
    console.warn(err);
  } else {
    console.log(stats);
    console.log(stats.isFile() ? "是file" : "不是file");  //是file
    console.log(stats.isDirectory() ? "是目录" : "不是目录");   //不是目录
  }
}); 

这里的参数stats是fs的Stats类,它就是文件的信息,我们通常还会使用它的两个常用方法,isFile(): booleanisDirectory(): boolean判断是文件还是目录。

fs.writeFile(file, data[, options], callback),主要是file文件名,data:写入的数据,callback回调。

fs.writeFile("input.txt", "writed!", (fs) => {
  console.log("done," + fs);
});

options里面默认的flag是w即覆盖重写。我们也通常使用这个方法来创建文件。

fs.readFile(path,options,callback) 上面写过一次,不多说了。

fs.close(fd,callback),它是open对应的关闭操作,fd就是文件的标识符,通常在open回调里提供fd参数调用close来关闭文件。

fs.open("input.txt", "r+", (err: NodeJS.ErrnoException | null, fd: number) => {
  console.log(fd);
  fs.close(fd, () => {
    console.log("关闭");
  });
});

其他还有fs.unlink(path, callback) 删除文件, fs.mkdir(path[, options], callback),创建目录.fs.rmdir(path, callback),删除目录。 `

path 模块

用到fs那么基本上也一定会用到path,它能够对路径做一些操作。这里就说几个常用的api。

path.basename(path[, ext])获取路径中文件名,后缀是可选的.

__dirname是node.js中的一个全局变量,用来获取当前模块文件所在目录的完整绝对路径,通常ts的话会报错。

path.join([...paths]) 路径结合、合并,路径最后不会带目录分隔符

path.normalize(path) 路径解析,得到规范化的路径格式,对window系统,目录分隔为'', 对于UNIX系统,分隔符为'/',针对'..'返回上一级;/与\都被统一转换

path.resolve([...paths]) 以应用程序为起点,根据参数字符串解析出一个绝对路径

总结

本次文章的是我个人学习的总结,巩固一下记忆。因为学习源码会看到很多的fs和path操作,就简单学习一下。

结语

本次的文章到这里就结束啦!♥♥♥读者大大们认为写的不错的话点个赞再走哦 ♥♥♥

每天一个知识点,每天都在进步!♥♥