在本教程中,在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模块导入代码中 - nodejs
fs文件系统模块有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文件的多种方法