细节链接
详解利用nodejs对本地json文件进行增删改查 | 文件
1.首先存在packagename.json文件,具体内容如下
[
{"label":"星享优惠","value":"com.kyy.xxyh"},
{"label":"记得","value":"com.kyy.jide"}
]
2.业务层代码如下:
packagename(ctx) {
let { query } = this.ctx
let { label, value } = query
let p = path.join(__dirname, '../../../../config/packagename.json')
//直接读取数据
if (!label && !value) {
this.ctx.sendSuccess(packagename)
}
//新增数据
if (label && value) {
let p = path.join(__dirname, '../../../../config/packagename.json')
fs.readFile(p, 'utf8', (err, data) => {
// 如果错误则输出错误并返回
if (err) {
console.log('err', err);
return
}
// 定义⼀个数组存放读取到的数据
let arr = JSON.parse(data)
//将新记录添加到数组中
arr.push({ label, value })
//添加后写⼊json⽂件
fs.writeFile(p, JSON.stringify(arr), 'utf8', function(err) {
})
});
this.ctx.sendSuccess(packagename)
} else {
//删除数据
fs.readFile(p, (err, data) => {
if (err) {
return console.error(err);
}
let arr = JSON.parse(data)
console.log(arr)
//把数据读出来删除
for (var i = 0; i < arr.length; i++) {
if (value == arr[i].value) {
arr.splice(i, 1);
}
}
//然后再把数据写进去
fs.writeFile(p, JSON.stringify(arr), function(err) {
if (err) {
console.error(err);
}
console.log('----------删除成功------------');
})
})
this.ctx.sendSuccess(packagename)
}
}
对了 读取文件操作 就不需要异步了哈