📅  最后修改于: 2023-12-03 15:28:11.101000             🧑  作者: Mango
在 Node.js 中,使用 fs
(文件系统)模块可以读取本地硬盘上的 JSON 文件。JSON 文件通常用于存储配置文件、数据库的备份文件等等,它们可以被解析成 JavaScript 对象,供我们在程序中使用。
fs
模块:const fs = require('fs');
fs.readFile()
方法读取 JSON 文件,并将其转换为 JavaScript 对象。例如,读取名为 data.json
的文件:fs.readFile('data.json', 'utf8', (err, data) => {
if (err) throw err;
const obj = JSON.parse(data);
console.log(obj);
});
在此示例中,使用了 utf8
作为第二个参数,指定了使用 UTF-8 编码读取文件内容。如果你的文件使用其他编码,需要相应地修改。
fs.readFile()
接受三个参数:文件路径、文件编码、回调函数。在回调函数中,如果出现错误,会抛出异常;否则,将回调函数的第二个参数 data
(即文件内容)解析成 JavaScript 对象,存在变量 obj
中,并输出到控制台中。
function readJsonFile(filePath, callback) {
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) return callback && callback(err);
try {
const obj = JSON.parse(data);
callback && callback(null, obj);
} catch (err) {
callback && callback(err);
}
});
}
此处的 try-catch
语句用于捕获 JSON 解析错误。如果解析成功,将 JavaScript 对象作为回调的第二个参数传递;否则,将错误对象作为第一个参数传递。
假设有一个 config.json
文件,存储了程序的配置信息(例如数据库连接信息、监听端口等等),它的内容如下:
{
"db": {
"host": "localhost",
"port": 27017,
"name": "test"
},
"server": {
"port": 3000
}
}
在 Node.js 中,你可以这样读取它:
readJsonFile('config.json', (err, config) => {
if (err) throw err;
console.log(config.db.host); // "localhost"
console.log(config.server.port); // 3000
});