fs-extra writeJson()方法
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