在Nodejs应用程序中读取本地json文件的多种方法

1,768 阅读2分钟

在本教程中,在Nodejs应用程序中读取本地json文件的多种方法

  • 使用所需的js
  • fs模块readFile

让我们在nodejs项目emp.json中声明一个本地json文件

{
"id": 1,
"name": "John",
"salary": 5000
}

在nodejs中使用require函数读取本地json文件的简单方法

这是一种使用require函数读取文件的简单易行的方法

const json = require("./emp.json");
console.log(json);

它直接将文件作为一个对象从本地文件中读取。

注意事项:

  • 这是一种简单易行的读取方式
  • 在应用程序运行期间,它只读取文件中的内容,但不读取修改过的内容。你需要重新启动服务器来重新加载本地json文件中的修改内容。

Nodejs提供了内置的fs 模块来处理文件系统。读取json文件的方式有两种

  • 使用readFileSync进行同步
  • 异步的readFile

让我们看看nodejs fs模块读取文件的代码示例

如何在nodejs中把本地json读成字符串

fs模块有readFileSync方法

语法

fs.readFileSync( filepath, fileoptions )

参数是文件的路径,选项是可选的配置,如编码细节。

const fs = require("fs");
const data = fs.readFileSync('./emp.json', 'utf8');
console.log(data);

输出

{
"id": 1,
"name": "John",
"salary": 5000
}
{ id: 1, name: 'John', salary: 5000 }

以下是读取本地json文件的步骤

  • 首先在你的js文件中导入fs模块readjson.js
  • 调用readFileSync 方法,输入文件的路径和编码细节
  • 将json的内容记录到控制台

这种方法的注意事项

  • 在代码执行过程中进行读取,对json文件的修改会被重新加载并按预期读取
  • 读取文件是同步的,性能不好,当前线程要等待读取完成。
  • 它不适合读取大文件,因为文件内容被读入内存。

使用nodejs fs模块异步读取本地json文件

这是从文件系统中读取json文件的异步方式。

  • 使用 require 函数将fs 模块导入代码中
  • nodejsfs 文件系统模块有readFile 方法,可以异步读取本地json文件的路径并返回回调。
  • 回调包含两个参数,一个是error ,另一个是字符串对象,错误对象包含一个错误,如果发生错误,字符串对象将json内容读成一个字符串。
  • 最后使用json.parse() 方法解析字符串对象,将其转换为Object类型。
  • 最后将字符串转换为对象,并在try和catch块中包裹解析错误的结果。
 const fs = require("fs");
fs.readFile('./emp.json', 'utf8', (err, jsonObject) => {
    if (err) {
        console.log('Error callback:', err);
        return;
    }
    try {
        console.log(jsonObject); // string object 
        const jsonData = JSON.parse(jsonObject);
        console.log(jsonData); //object type
    } catch (err) {
        console.log('Error while parsing JSON string data:', err);
    }
})

注意:

  • 这是最好的和实时的读取文件的方法
  • 当前线程不会等待读取文件的操作完成。

总结

你学到了在nodejs应用程序中读取本地json文件的多种方法