简述
今天我们介绍fs模块的一些常用方法
首先只要是fs模块第一步都是必须导入fs模块
// 导入fs模块
const fs = require('fs')
引入模块时,可以用var 、let,但是建议用const,因为我们希望这个模块不被改变
1.读取文件
fs.readFile('./data/dogs.json',(err,data) => {
// 读取成功
if(!err){
// console.log(data);
const arr = JSON.parse(data)
// 往数组中增加元素
arr.push('哈士奇')
// console.log(arr);
// 向JSON文件写入数组元素
fs.writeFile('./data/dogs.json',JSON.stringify(arr),err =>{
if(!err){
console.log('写入成功');
}else{
console.log('写入失败');
}
})
console.log(arr);
}
})
JSON通常用于与服务器交换数据
所以我们通过JSON.parse方法把JSON数据转换为JS字符串
console.log(JSON.parse(data));
定义一个数组去接收我们读取的数据 const arr = JSON.parse(data)
封装方法
这样写虽然可以调用其他模块,但是再项目实战中这样的写法未免有点太繁琐了。我们可以换一种思路,将这个方法封装起来,然后用的时候再调用。这样多次调用就可以变得很方便
这里我们用一个小案例来实践,我们这里写一个添加狗狗品种的小模块
封装的读取狗狗的方法
function readDog(){
// 读取
fs.readFile('./data/dogs.json',(err,data)=>{
if(!err){
console.log(JSON.parse(data));
}else{
console.log(err);
}
})
}
封装添加狗狗的方法
function addDog(dog) {
// 读取文件
fs.readFile('./data/dogs.json', (err, data) => {
// 读取成功
if (!err) {
// console.log(data);
// JSON通常用于与服务器交换数据
// 所以我们通过JSON.parse方法把JSON数据转换为JS字符串
// console.log(JSON.parse(data));
// 定义一个数组去接收我们读取的数据
const arr = JSON.parse(data)
// 往数组中增加元素
arr.push(dog)
// console.log(arr);
// 向JSON文件写入数组元素
fs.writeFile('./data/dogs.json', JSON.stringify(arr), err => {
if (!err) {
console.log('写入成功');
} else {
console.log('写入失败');
}
})
// console.log(arr);
}
})
}
addDog("德牧");
最后我们用调用封装后的两个方法来看一下效果
addDog("王子")
addDog("子旭")
addDog("邓邓")
addDog("瑞瑞")
readDog()