Node fs模块的功能介绍

492 阅读2分钟

Node.js的fs模块提供了与文件系统交互的有用功能

fs 模块提供了许多非常有用的功能来访问文件系统并与之互动。

没有必要安装它。作为Node核心的一部分,它可以通过要求它来使用。

一旦你这样做,你就可以访问它的所有方法,其中包括。

  • fs.access(): 检查文件是否存在,并且Node可以通过其权限访问它
  • fs.appendFile():将数据追加到文件中。如果文件不存在,它就会被创建
  • fs.chmod(): 改变一个由传递的文件名指定的文件的权限。相关的。fs.lchmod(),fs.fchmod()
  • fs.chown()更改由通过的文件名指定的文件的所有者和组。相关的。fs.fchown(),fs.lchown()
  • fs.close():关闭一个文件描述符
  • fs.copyFile():复制一个文件
  • fs.createReadStream(): 创建一个可读文件流
  • fs.createWriteStream()创建一个可写的文件流
  • fs.link()创建一个新的硬链接到一个文件
  • fs.mkdir()创建一个新的文件夹
  • fs.mkdtemp(): 创建一个临时目录
  • fs.open(): 设置文件模式
  • fs.readdir(): 读取一个目录的内容
  • fs.readFile()读取一个文件的内容。相关的。fs.read()
  • fs.readlink(): 读取一个符号链接的值
  • fs.realpath(): 将相对文件路径指针(.,..)解析为全路径
  • fs.rename(): 重命名一个文件或文件夹
  • fs.rmdir(): 删除一个文件夹
  • fs.stat(): 返回由传递的文件名识别的文件的状态。相关的。fs.fstat(),fs.lstat()
  • fs.symlink()创建一个新的符号链接到一个文件
  • fs.truncate()截断文件:将通过文件名识别的文件截断到指定长度。相关的。fs.ftruncate()
  • fs.unlink():删除一个文件或一个符号链接
  • fs.unwatchFile(): 停止监视一个文件的变化
  • fs.utimes():改变由通过的文件名识别的文件的时间戳。相关的。fs.futimes()
  • fs.watchFile(): 开始监视一个文件的变化。相关的。fs.watch()
  • fs.writeFile():将数据写入一个文件。相关的。fs.write()

fs 模块的一个奇特之处在于,所有的方法在默认情况下都是异步的,但它们也可以通过附加Sync ,同步工作。

比如说。

  • fs.rename()
  • fs.renameSync()
  • fs.write()
  • fs.writeSync()

这在你的应用流程中产生了巨大的差异。

Node 10包括对基于承诺的API的实验性支持

例如,让我们检查一下fs.rename() 方法。异步API是与回调一起使用的。

const fs = require('fs')

fs.rename('before.json', 'after.json', (err) => {
  if (err) {
    return console.error(err)
  }

  //done
})

同步API可以像这样使用,用一个try/catch块来处理错误。

const fs = require('fs')

try {
  fs.renameSync('before.json', 'after.json')
  //done
} catch (err) {
  console.error(err)
}

这里的关键区别是,在第二个例子中,你的脚本的执行将被阻塞,直到文件操作成功。