详解利用nodejs对json文件进行新增数据及删除指定的数据

2023-05-16

细节链接

详解利用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)
    }
  }

对了 读取文件操作 就不需要异步了哈

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

详解利用nodejs对json文件进行新增数据及删除指定的数据 的相关文章

随机推荐

  • C#之enum,枚举类型的简介和使用

    枚举类似于数组 xff0c 但两者的定义方法和设计目的不同枚举中的值会放在栈中枚举类型不能直接放在方法中 xff0c 一般放在命名空间中或与类同级枚举使用enum关键字进行定义 xff0c 枚举类型的定义其实和类的成员定义相似 xff0c
  • 用pip命令把python包安装到指定目录

    pip3 install bs4 target 61 D Python37 Lib site packages pip2或者pip3 包管理系统 install 安装 bs4 xff1a 要安装Python的包 指定安装目录 xff1a t
  • VScode配置C++以及一些问题解决方案

    如果有CLion的 xff0c 那就用CLion吧 xff0c 我个人觉得CLion是一个非常好的IDE Vscode配置C 43 43 VScode配置C 43 43 的详细过程 xff0c 请看官网 xff1a Get Started
  • BlockCode 少儿编程 1《拔萝卜》

    1题目 34 拔萝卜 34 34 拔萝卜 xff0c 拔萝卜 xff0c 嗨呦拔萝卜 老太婆 xff0c 小姑娘 xff0c 小黄狗 xff0c 小花猫快来一起拔萝卜 34 34 老太婆 xff0c 小姑娘 xff0c 小黄狗 xff0c
  • Wifiphisher —— 非常非常非常流氓的 WIFI 网络钓鱼框架

    编者注 xff1a 这是一个非常流氓的 WIFI 网络钓鱼工具 xff0c 甚至可能是非法的工具 xff08 取决于你的使用场景 xff09 在没有事先获得许可的情况下使用 Wifiphisher 攻击基础网络设施将被视为非法活动 使用时请
  • BlockCode 少儿编程 2 《做早操》

    1 题目 34 做早操 34 34 小朋友们排成一队做早操 xff0c 小明前面有4个小朋友 xff0c 后面有3个小朋友 34 34 4个同学 xff0c 3个同学 34 34 这队一共多少个小朋友 xff1f 34 2 编程知识 CPU
  • BlockCode 少儿编程 10 《分铅笔》

    1 题目 34 分铅笔 34 34 妈妈给姐姐买了8支铅笔 xff0c 给弟弟买了4支铅笔 xff0c 姐姐分给弟弟 xff0c 使得姐弟俩两人的铅笔一样多 34 34 8支 xff0c 4支 34 34 姐姐最后有几只铅笔 xff1f 3
  • USB3.0扩展坞集线器Hub引起鼠标卡顿飘解决方法

    大部分USB3 0扩展坞集线器Hub会引起鼠标卡顿飘 xff0c 尤其是无线鼠标 蓝牙鼠标 xff0c 无线键盘也会出现输入迟缓的问题 mac 和 Windows都是这样 解决方法 xff1a 1 xff09 usb3 0集线器插入2 0接
  • 禁止鼠标唤醒睡眠的电脑,无线鼠标、蓝牙鼠标

    经常一不小心碰到鼠标就会唤醒睡眠的电脑 xff0c 有时咳嗽声大一点也能唤醒 解决方法 xff1a xff08 1 xff09 打开 设备管理器 在 此电脑 上右键 xff0c 属性 左侧找到设备管理器 或者 xff0c 在开始按钮上右键
  • C#与C++ dll 之间传递字符串string wchar_t* char* IntPtr

    1 由C 向C 43 43 dll 传入字符串时 xff0c 参数直接用string xff0c 设置编码格式 CharSet Unicode CharSet Ansi C 43 43 dll接收使用wchar t 或 char 2 由C
  • SwiftUI 导航 NavigationStack NavigationLink navigationDestination

    导航的显示区域使用NavigationStack 导航的新视图会显示在NavagationStack中 左右分栏导航使用NavigationSplitView 触发导航的按钮使用NavigationLink 示例1 显示颜色视图 struc
  • SwiftUI 数组初始化 append 不工作 无效 init中 State Array

    State的数组在初始化函数init是不能添加数据的 xff0c append在init中无效 xff0c 不能添加数据 实现方法如下 xff1a 采用视图控件的回调函数 appear if myArray count 61 61 0 my
  • SwiftUI List 中 多个 按钮 button 同时触发 buttonStyle

    在list中的一个单元格中设置多个按钮会出现同时触发的问题 xff0c 解决方法是增设按钮的类型属性 buttonStyle borderless 在List的单元格中 xff0c 按钮的下面 buttonStyle borderless
  • 隐私策略

    隐私权声明 软件注重对您的个人隐私的保护 我们不会在任何情况下收集您的信息 本隐私权声明适用于本软件的所有相关服务 您个人信息的搜集 本软件不收集任何您的个人信息 控制您的个人信息 本软件不控制您的任何个人信息 您个人信息的安全 严格保护您
  • MMPlayer同步文件到手机应用中的方法

    自己准备好要同步的文件 xff0c 如mp3 mp4 xff0c 然后按照如下操作 xff1a xff08 1 xff09 mac电脑插上iPhone xff08 2 xff09 打开访达Finder xff08 3 xff09 在左上列表
  • 全世界到底有多少软件开发人员?

    埃文斯数据公司 Evans Data Corporation 2019 最新的统计数据 xff08 原文 xff09 显示 xff0c 2018 年全球共有 2300 万软件开发人员 xff0c 预计到 2019 年底这个数字将达到 264
  • 并查集【通俗易懂】【知识点】

    为了解释并查集的原理 xff0c 我将举一个有爱的例子 话说江湖上散落着各式各样的大侠 xff0c 有上千个之多 他们没有什么正当职业 xff0c 整天背着剑在外面走来走去 xff0c 碰到和自己不是一路人的 xff0c 就免不了要打一架
  • QtreeWiget各节点之间连线样式设置

    QTreeWidget树状图默认各节点直接是没有线连接的 xff0c 看着层次感不强 xff0c 用户体验不太好 xff0c 所以需要设置一下样式 方法一 xff1a 通过对qtreewidget进行qss样式设置 效果图如下 xff1a
  • gitlab安装部署及问题解决(实践篇)

    系统环境 xff1a centos7 9 gitlab版本 xff1a 11 1 4 一 GitLab简介 GitLab 是一个用于仓库管理系统的开源项目 xff0c 使用Git作为代码管理工具 xff0c 并在此基础上搭建起来的web服务
  • 详解利用nodejs对json文件进行新增数据及删除指定的数据

    细节链接 详解利用nodejs对本地json文件进行增删改查 文件 1 首先存在packagename json文件 xff0c 具体内容如下 34 label 34 34 星享优惠 34 34 value 34 34 com kyy xx