Node.js fs 模块 Promise 接口

本文被收录到:

Node.js 教程

本专题关于 Node.js 基础知识和模块

目录

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 不仅使代码更加清晰,也提高了错误处理的一致性和代码的可维护性。

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
搜神记
777 文章
4 教程
8 项目
随机推荐
WordPress 数据库操作
curl 的用法指南
Flame 插件
HTML input range 数值范围选择器
JavaScript 焦点管理
Notifications API
AIBOT 插件
JavaScript Math 对象