基于nodejs的本地文件增删改查的工具代码
一、代码封装
这是一个使用node.js实现的对本地文件进行增删改查的工具代码封装,其中代码结尾包含了使用方法示例,具体封装代码如下:
// jsonTool.js
const fs = require('fs');
const path = require('path');
// 定义 JSON 文件的路径
const filePath = path.join(__dirname, '../data.json');
// 读取 JSON 文件内容
function readJsonData() {
try {
const fileContent = fs.readFileSync(filePath);
return JSON.parse(fileContent);
} catch (error) {
if (error.code === 'ENOENT') {
return []; // 文件不存在时返回空数组
} else {
throw error; // 其他错误抛出异常
}
}
}
// 写入 JSON 文件内容
function writeJsonData(data) {
fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
}
// 增加数据到 JSON 文件
function addData(data) {
const jsonData = readJsonData();
jsonData.push(data);
writeJsonData(jsonData);
}
// 根据属性名和属性值删除数据
function deleteData(propName, propValue) {
const jsonData = readJsonData();
const index = jsonData.findIndex(item => item[propName] === propValue);
if (index !== -1) {
jsonData.splice(index, 1);
writeJsonData(jsonData);
} else {
throw new Error('未找到对应的数据');
}
}
// 根据属性名和属性值修改数据
function updateData(propName, propValue, newData) {
const jsonData = readJsonData();
const index = jsonData.findIndex(item => item[propName] === propValue);
if (index !== -1) {
jsonData[index] = {...jsonData[index], ...newData};
writeJsonData(jsonData);
} else {
throw new Error('未找到对应的数据');
}
}
// 分页查找 JSON 数据
function findDataWithPagination(propName, propValue, pageSize, pageNum) {
const jsonData = readJsonData();
const startIndex = (pageNum - 1) * pageSize;
const endIndex = startIndex + pageSize;
const filteredData = jsonData.filter(item => item[propName] === propValue);
return {
total: filteredData.length,
page: pageNum,
pageSize: pageSize,
data: filteredData.slice(startIndex, endIndex)
};
}
// 导出模块的方法
module.exports = {
addData,
deleteData,
updateData,
findDataWithPagination
};
二、使用示例
const { addData, deleteData, updateData, findDataWithPagination } = require('./jsonTool'); // 引入模块
// 测试数据
const newData = {
id: 2,
name: '李四',
age: 25
};
// 增加数据
addData(newData);
// 修改数据
updateData('id', 2, { age: 26 }); // 将 id 为 2 的数据中的 age 修改为 26
// 删除数据
try {
deleteData('id', 1);
} catch (error) {
console.error(error.message);
}
// 分页查找数据
const pagedData = findDataWithPagination('name', '李四', 10, 1); // 查找 name 为 '李四' 的数据,每页显示 10 条,第 1 页
console.log(pagedData);
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
作者:莫颀
出处:https://www.cnblogs.com/bokemoqi/p/18382608
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。