【敏捷开发】Node.js(nodejs)实现一个接口完成增删改查聚合接口4个功能,最大限度节省接口数量,正所谓“一口多用”(基础版、免登陆、无鉴权)
注意,前情提示:
本代码基于《Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)》
传送门Node.js(nodejs)对本地JSON文件进行增、删、改、查操作(轻车熟路)_你挚爱的强哥❤给你发来1条消息❤-CSDN博客
在/api/demo/文件夹下面创建CURD.base.js
代码内容
const $g = global.SG.$g, fs = global.SG.fs, router = global.SG.router;
module.exports = global.SG.router;
//经常需要修改的内容----------------------------------------------------------------
const demoJsonPath = "json/demo/test.json";//测试存储数据的json文件路径
const apiPath = "/demo/CURD.base";//定义前端请求的接口路径
//----------------------------------------------------------------
const mkdirs = $g.dir.mkdirsByFilePath;//递归创建文件夹目录(基于文件路径)
/**【增】方法➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕➕*/
const __C = (_curd) => {_curd._doText = "添加";let jsonPath = _curd.jsonPath, body = _curd.body, success = _response.success, fail = _response.fail;body = Object.assign({id: $g.date.timestamp()}, body);//自动添加时间戳为idfs.readFile(jsonPath, (err, data) => {if (err) return fail && fail({code: -1, msg: "读取数据失败", data: err}, _curd), console.error($g.date.nowtime() + "\n", err, "\n----添加失败----");data = JSON.parse(data.toString());data.push(body);fs.writeFile(jsonPath, JSON.stringify(data), err => {if (err) return fail && fail({code: -1, msg: "写入数据失败", data: err}, _curd), console.error($g.date.nowtime() + "\n", err, "\n----添加失败----");success && success({change: body, data}, _curd);//回显发生改变的内容用于关联表处理的前端业务,_curd._doText逻辑console.log($g.date.nowtime() + "\n", data, "\n----添加成功----");});});
};
/**【删】方法✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖✖*/
const __D = (_curd) => {_curd._doText = "删除";const jsonPath = _curd.jsonPath, body = _curd.body, success = _response.success, fail = _response.fail;const ids = Array.isArray(body.id) ? body.id : [body.id.toString()]; //批量删除功能fs.readFile(jsonPath, (err, data) => {if (err) return fail && fail({code: -1, msg: "读取数据失败", data: err}, _curd), console.error($g.date.nowtime() + "\n", err, "\n----删除失败----");data = JSON.parse(data.toString());let arr = data, re = [], successIds = [], changes = [];for (let i = 0, len = arr.length; i < len; i++) {let a = arr[i];ids.includes((a.id || "null").toString()) ? (successIds.push(a.id), changes.push(a)) : re.push(a);}if (!successIds.length) return fail && fail({code: -1, msg: `没有找到对应id:${ids}的记录,删除失败`, data}, _curd), console.error($g.date.nowtime(), "\n----删除失败----");fs.writeFile(jsonPath, JSON.stringify(re), err => {if (err) return fail && fail({code: -1, msg: "写入数据失败", data: err}, _curd), console.error($g.date.nowtime() + "\n", err, "\n----删除失败----");success && success({change: changes, data: re}, _curd);//回显发生改变的内容用于关联表处理的前端业务,_curd._doText逻辑console.log($g.date.nowtime() + "\n", re, `\n----id:${successIds}删除成功----`);});});
};
/**【改】方法
【敏捷开发】Node.js(nodejs)实现一个接口完成增删改查聚合接口4个功能,最大限度节省接口数量,正所谓“一口多用”(基础版、免登陆、无鉴权)相关推荐
- resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...
- 【node】Sequelize常用操作、基本增删改查
[node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...
- AJAX面试题:一个页面实现增删改查(ASP.NET实现)
[下载] 很多asp.net程序员面试的时候都遇到过用ajax效果实现一个页面的增删改查.这几个例子分别用纯JS,JQUERY及JSON实现.希望对大家有些帮助. 这里面的例子表格内容的刷新是直接返回 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Node连接MySQL数据库进行基本的增删改查操作(一看就会)
Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...
- 使用JDBC来实现一个简单的增删改查
使用jdbc来实现一个简单的增删改查 package com.database;import java.sql.Connection; import java.sql.PreparedStatemen ...
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查
JS组件系列--BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查 参考文章: (1)JS组件系列--BootstrapTable+Kno ...
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)
JS组件系列--BootstrapTable+KnockoutJS实现增删改查解决方案(一) 参考文章: (1)JS组件系列--BootstrapTable+KnockoutJS实现增删改查解决方案( ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id=&q ...
最新文章
- python中的栈结构_Python可以实现栈的结构吗
- aix oracle 10.2.0.1 升级 10.2.0.4,AIX Oracle RAC 升级到10.2.0.4.0要特别注意的问题 - 爱肯的专栏 ......
- 实验四 linux进程控制实验报告,Linux系统进程控制操作系统实验报告4
- 2016计算机二级公共知识,2016计算机二级《公共基础知识》章节训练与答案
- gitee合并分支_Gitee在线解决代码冲突功能上线,无需手动修改轻松解决冲突
- 如何使用Java开发QQ机器人 方法二
- GD32F103学习笔记(1)——搭建环境、编译烧写
- Vivado_ILA IP核
- [re入门]IDA和OD的基本使用(持续更新)
- java 调用felix_寻找在动态加载Jar文件中使用Apache Felix并在Java中在运行时实例化类的基本示例...
- 为什么地球上的第一个复杂生命体出现在海洋中
- Aspect获取目标方法中带特定注解的参数值
- Java设计模式之Builder模式
- injected stylesheet注入样式导致el-button内文字为空白
- 使用 jenkins 构建 CI/CD 平台
- java debug调试怎么用?
- 不会玩可别说节日营销过气了
- 用Python学《微积分B》(定积分)
- Android图片加载出现色带
- STM32——GPIO
热门文章
- Beta 冲刺 (7/7)
- 创建一个Scalar-valued Function函数来实现LastIndexOf
- 从协议入手,剖析OAuth2.0(译 RFC 6749)
- begin.lydsy 入门OJ题库:1104:纯粹合数
- ((ios开发学习笔记九)) Simple TableView 实现(附 实例源码)
- (转)TabContainer要实现服务器端回传
- ORB_SLAM2中Tracking线程的三种追踪方式
- 导购网站 服务器,导购网站云服务器配置
- linux ls没有反应_Linux入门②“命令格式”
- linux mint 屏保_Linux Mint 修复了两个孩子发现的屏保锁定绕过漏洞