注意,前情提示:
本代码基于《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个功能,最大限度节省接口数量,正所谓“一口多用”(基础版、免登陆、无鉴权)相关推荐

  1. resultset mysql_MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ [正文] 一.ResultSet接口的介绍: 对数据库的查询操作,一般需要返回查询结果,在程序中,JDBC为我们提供了ResultSet接口来专门处理查 ...

  2. 【node】Sequelize常用操作、基本增删改查

    [node]Sequelize常用操作.基本增删改查 sequelize初始化 先初始化一个数据库实例 再初始化一个model实例 sequelize的数据类型 基本增删改查的写法 SELECT * ...

  3. AJAX面试题:一个页面实现增删改查(ASP.NET实现)

    [下载] 很多asp.net程序员面试的时候都遇到过用ajax效果实现一个页面的增删改查.这几个例子分别用纯JS,JQUERY及JSON实现.希望对大家有些帮助. 这里面的例子表格内容的刷新是直接返回 ...

  4. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)...

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. Node连接MySQL数据库进行基本的增删改查操作(一看就会)

    Node连接MySQL数据库进行基本的增删改查操作(一看就会) ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ...

  6. 使用JDBC来实现一个简单的增删改查

    使用jdbc来实现一个简单的增删改查 package com.database;import java.sql.Connection; import java.sql.PreparedStatemen ...

  7. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查

    JS组件系列--BootstrapTable+KnockoutJS实现增删改查解决方案(三):两个Viewmodel搞定增删改查 参考文章: (1)JS组件系列--BootstrapTable+Kno ...

  8. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)

    JS组件系列--BootstrapTable+KnockoutJS实现增删改查解决方案(一) 参考文章: (1)JS组件系列--BootstrapTable+KnockoutJS实现增删改查解决方案( ...

  9. JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能

    JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id=&q ...

最新文章

  1. python中的栈结构_Python可以实现栈的结构吗
  2. aix oracle 10.2.0.1 升级 10.2.0.4,AIX Oracle RAC 升级到10.2.0.4.0要特别注意的问题 - 爱肯的专栏 ......
  3. 实验四 linux进程控制实验报告,Linux系统进程控制操作系统实验报告4
  4. 2016计算机二级公共知识,2016计算机二级《公共基础知识》章节训练与答案
  5. gitee合并分支_Gitee在线解决代码冲突功能上线,无需手动修改轻松解决冲突
  6. 如何使用Java开发QQ机器人 方法二
  7. GD32F103学习笔记(1)——搭建环境、编译烧写
  8. Vivado_ILA IP核
  9. [re入门]IDA和OD的基本使用(持续更新)
  10. java 调用felix_寻找在动态加载Jar文件中使用Apache Felix并在Java中在运行时实例化类的基本示例...
  11. 为什么地球上的第一个复杂生命体出现在海洋中
  12. Aspect获取目标方法中带特定注解的参数值
  13. Java设计模式之Builder模式
  14. injected stylesheet注入样式导致el-button内文字为空白
  15. 使用 jenkins 构建 CI/CD 平台
  16. java debug调试怎么用?
  17. 不会玩可别说节日营销过气了
  18. 用Python学《微积分B》(定积分)
  19. Android图片加载出现色带
  20. STM32——GPIO

热门文章

  1. Beta 冲刺 (7/7)
  2. 创建一个Scalar-valued Function函数来实现LastIndexOf
  3. 从协议入手,剖析OAuth2.0(译 RFC 6749)
  4. begin.lydsy 入门OJ题库:1104:纯粹合数
  5. ((ios开发学习笔记九)) Simple TableView 实现(附 实例源码)
  6. (转)TabContainer要实现服务器端回传
  7. ORB_SLAM2中Tracking线程的三种追踪方式
  8. 导购网站 服务器,导购网站云服务器配置
  9. linux ls没有反应_Linux入门②“命令格式”
  10. linux mint 屏保_Linux Mint 修复了两个孩子发现的屏保锁定绕过漏洞