fs-extra writeJson()方法

栏目: NodeJs 发布时间:2024-12-24

writeJson 方法是 fs-extra 提供的一个非常实用的功能,它允许你将 JavaScript 对象写入到 JSON 文件中。

writeJson 方法接受两个必需参数:要写入的文件路径(file)和要写入的 JavaScript 对象(data),并返回一个 Promise。当 Promise 解析时,表示数据已成功写入文件。

你还可以传递一个可选的第三个参数(options),它是一个对象,可以包含以下属性:

  • spaces:一个数字或字符串,用于指定缩进空格的数量或字符串(例如,'\t' 表示制表符)。默认值是 null,表示没有缩进。
  • replacer:一个函数或数组,用于在序列化 JSON 数据之前对其进行转换或过滤。
  • EOL:指定行结束符(例如,'\n''\r\n')。默认值是系统默认的行结束符。

基本用法

const filePath = '/path/to/your/file.json';
const dataToWrite = {
  name: 'John Doe',
  age: 30,
  city: 'New York'
};

fse.writeJson(filePath, dataToWrite)
  .then(() => {
    console.log('数据已成功写入 JSON 文件!');
  })
  .catch(err => {
    console.error('写入 JSON 文件时出错:', err);
  });

在这个例子中,filePath 是你想要写入的 JSON 文件的路径,dataToWrite 是你想要写入文件的 JavaScript 对象。writeJson 方法会返回一个 Promise,当 Promise 解析时,表示数据已成功写入文件。

使用 spaces 选项进行缩进

const filePath = '/path/to/your/formattedFile.json';
const dataToWrite = {
  name: 'Jane Doe',
  age: 25,
  hobbies: ['reading', 'hiking']
};

fse.writeJson(filePath, dataToWrite, { spaces: 2 })
  .then(() => {
    console.log('数据已成功写入格式化的 JSON 文件!');
  })
  .catch(err => {
    console.error('写入 JSON 文件时出错:', err);
  });

在这个例子中,我们使用了 spaces: 2 选项来指定文件内容应该使用两个空格进行缩进,从而使 JSON 文件更加易读。

使用 async/await 语法

由于 writeJson 方法返回一个 Promise,你可以使用 async/await 语法来更优雅地处理异步操作和结果。

const writeJsonFile = async (filePath, data, options) => {
  try {
    await fse.writeJson(filePath, data, options);
    console.log('数据已成功写入 JSON 文件!');
  } catch (err) {
    console.error('写入 JSON 文件时出错:', err);
  }
};

const filePathToWrite = '/path/to/your/asyncFile.json';
const data = {
  title: 'My Awesome Project',
  description: 'This is a description of my project.'
};

writeJsonFile(filePathToWrite, data, { spaces: 4 });

在这个例子中,我们定义了一个 writeJsonFile 异步函数,它接受文件路径、数据和选项作为参数,并使用 await 关键字等待 writeJson 方法的 Promise 解析。

注意事项

  • 请确保提供的文件路径是有效的,并且你有足够的权限来写入该文件。
  • 如果指定的文件不存在,writeJson 方法会自动创建该文件。
  • 如果指定的文件已经存在,writeJson 方法会覆盖该文件的内容。

本文地址:https://www.tides.cn/p_node-fs-extra-write-json