npm 包 fs.promises 使用教程

阅读时长 4 分钟读完

在前端开发中,我们经常需要操作文件,例如读取、写入、删除等等。Node.js 提供了内置的 fs 模块让我们可以轻松地完成这些操作。然而,这个模块的 API 是基于回调函数的,使用起来略显麻烦。幸运的是,Node.js 10.0 版本之后引入的 fs.promises 模块提供了使用 Promise 的 API,使文件操作更加方便和可读性更好。

在本文中,我们将学习如何使用 fs.promises 进行文件操作,并给出一些使用示例来让你更好地理解该模块的使用方式。

安装和引入

Node.js 的内置模块 fs 基于回调函数编写,并不支持 Promise。为了使用 fs.promises,我们需要遵循以下步骤:

  1. 安装 Node.js 10 及以上版本
  2. 在项目目录中运行 npm init 命令初始化项目
  3. 运行 npm install fs-extra 命令安装 fsfs.promises 两个模块
  4. 在代码中通过 import { promises as fs } from 'fs'const { promises: fs } = require('fs') 引入 fs.promises 模块

以下是通过 import 语法引入 fs.promises 的示例代码:

文件读取

fs.promises 提供了与 fs 模块相同的文件读取方法。使用 Promise API,我们可以像下面这样读取一个文件:

在读取文件内容后,结果将作为 Promise 的值返回。如果操作失败,则返回的 Promise 将被拒绝,并且错误信息将被传递给 catch 函数。

除了 readFile,还有其他读取文件的方法:

  • readFileSync:同步读取一个文件
  • readdir:读取目录中的文件列表
  • readdirSync:同步读取目录中的文件列表

文件写入

同样,fs.promises 也提供了与 fs 模块相同的文件写入方法。使用 Promise API 编写的代码可以像下面这样写入文件:

在写入文件之后,Promise 的值将被解析为 undefined。如果写入操作失败,则 Promise 将被拒绝,并且错误信息将被传递给 catch 函数。

除了 writeFile,还有其他写入文件的方法:

  • writeFileSync:同步写入一个文件
  • appendFile:在一个文件末尾追加数据
  • appendFileSync:同步在一个文件末尾追加数据
  • mkdir:创建一个目录
  • mkdirSync:同步创建一个目录

文件操作

除了读取和写入文件之外,fs.promises 还提供了其他文件操作的方法。例如,我们可以使用 unlink 删除一个文件,使用 stat 获取文件属性,使用 rename 重命名文件等。

以下是一些示例代码:

-- -------------------- ---- -------
-- ----
---------------------
  -------- -- ----------------- --- ---- -----------
  ------------ -- --------------------

-- ------
-------------------
  ------------- -- -------------------
  ------------ -- --------------------

-- -----
--------------------- ---------------
  -------- -- ----------------- --- ---- -----------
  ------------ -- --------------------

同样,如果操作失败,则返回的 Promise 将被拒绝,并且错误信息将被传递给 catch 函数。

结论

通过本文,我们已经了解了如何使用 fs.promises 进行文件操作,并给出了一些使用示例来帮助理解该模块的使用方式。fs.promises 的使用不仅可以使代码更加优雅,而且还可以显著减少编写异步代码所需的时间。尝试在你的下一个项目中尝试使用它吧!

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/88009