fs-extra outputJson()方法

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

outputJson 方法是 fs-extra 提供的一个非常实用的功能,它允许你将 JavaScript 对象序列化为 JSON 字符串,并将其写入到文件中。

outputJson 方法接受两个必需参数:文件路径(file)和要写入的 JavaScript 对象(data),以及一个可选的配置对象(options)。配置对象可以包含与写入操作相关的选项,如编码方式、空格缩进等。

基本用法

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

fse.outputJson(filePath, data)
  .then(() => {
    console.log('JSON 数据已成功写入文件!');
  })
  .catch(err => {
    console.error('写入失败:', err);
  });

在这个例子中,filePath 是你想要写入 JSON 数据的文件的路径,而 data 是你要写入文件的 JavaScript 对象。

使用配置对象(可选)

你可以传递一个配置对象来指定写入操作的额外选项。例如,你可以设置 spaces 选项来决定 JSON 字符串的缩进空格数,以及 encoding 选项来决定文件的编码方式。

const options = {
  spaces: 2, // 设置缩进空格数为 2
  encoding: 'utf8' // 设置编码方式为 UTF-8(这是默认值,可以省略)
};

fse.outputJson(filePath, data, options)
  .then(() => {
    console.log('JSON 数据已成功写入文件(使用 2 个空格缩进)!');
  })
  .catch(err => {
    console.error('写入失败:', err);
  });

注意:在大多数情况下,encoding 选项的默认值是 'utf8',所以如果你不需要改变编码方式,可以省略这个选项。

使用 async/await 语法

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

const writeJsonToFile = async () => {
  try {
    await fse.outputJson(filePath, data, { spaces: 2 });
    console.log('JSON 数据已成功写入文件(使用 async/await 语法)!');
  } catch (err) {
    console.error('写入失败:', err);
  }
};

writeJsonToFile();

注意事项

  • 如果指定的文件路径已经存在,outputJson 方法会先删除该文件,然后创建一个新文件并写入数据。
  • 写入操作可能会因为权限问题、磁盘空间不足、路径名无效或其他文件系统错误而失败。
  • 请确保提供的文件路径是有效的,并且你的应用程序有足够的权限来创建和写入文件。
  • outputJson 方法在写入之前会自动将 JavaScript 对象序列化为 JSON 字符串,因此你不需要手动进行序列化操作。

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