Node.js fs 模块 Promise 接口

本文被收录到:

Node.js 的 fs 模块从版本 10 开始引入了基于 Promise 的 API,这使得使用 async/await 风格编写文件系统操作代码变得更加简洁和易于阅读。这些 Promise 化的方法位于 fs.promises 下,为异步文件操作提供了原生的 Promise 支持,无需再手动封装回调函数为 Promise。

以下是一些常用的 fs.promises 方法示例,配合 async/await 使用:

读取文件

const fs = require('fs').promises;

async function readFileAsync(filePath) {
  try {
    const data = await fs.readFile(filePath, 'utf8');
    console.log(data);
  } catch (err) {
    console.error(`读取文件时发生错误: ${err}`);
  }
}

readFileAsync('./example.txt');

写入文件

async function writeFileAsync(filePath, content) {
  try {
    await fs.writeFile(filePath, content, 'utf8');
    console.log('文件写入成功');
  } catch (err) {
    console.error(`写入文件时发生错误: ${err}`);
  }
}

writeFileAsync('./example.txt', 'Hello, Node.js with Promises!');

创建目录

async function mkdirAsync(dirPath) {
  try {
    await fs.mkdir(dirPath, { recursive: true }); // recursive 选项允许创建多级目录
    console.log('目录创建成功');
  } catch (err) {
    console.error(`创建目录时发生错误: ${err}`);
  }
}

mkdirAsync('./newDir');

删除文件

async function unlinkAsync(filePath) {
  try {
    await fs.unlink(filePath);
    console.log('文件删除成功');
  } catch (err) {
    console.error(`删除文件时发生错误: ${err}`);
  }
}

unlinkAsync('./example.txt');

通过上述示例可以看出,使用 fs.promises 结合 async/await 不仅使代码更加清晰,也提高了错误处理的一致性和代码的可维护性。

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
搜神记
765 文章
4 教程
8 项目
随机推荐
JavaScript DOM 查找元素
Wordpress 主样式表(style.css)
Node.js 实现 RBAC 权限模型
JavaScript 原生拖放
WordPress 支持事务
WordPress 调用自定义头像
JavaScript video 教程
JavaScript 类