📜  读取 json 文件 nodejs - Javascript (1)

📅  最后修改于: 2023-12-03 15:28:11.101000             🧑  作者: Mango

读取 JSON 文件 Node.js

在 Node.js 中,使用 fs(文件系统)模块可以读取本地硬盘上的 JSON 文件。JSON 文件通常用于存储配置文件、数据库的备份文件等等,它们可以被解析成 JavaScript 对象,供我们在程序中使用。

步骤
  1. 首先,导入 fs 模块:
const fs = require('fs');
  1. 然后,使用 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 中,并输出到控制台中。

  1. 如果你想在多个地方都使用这个模块,可以将读取 JSON 文件的代码封装成一个函数,供其他模块调用:
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
});
参考资料