详解利用nodejs对本地json文件进行增删改查


Posted in NodeJs onSeptember 20, 2019

哈喽!nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查

1.增

首先我们先看一下demo的目录结构

详解利用nodejs对本地json文件进行增删改查

我们看一下person.json的内容

详解利用nodejs对本地json文件进行增删改查

没毛病,接下来就是见证奇迹的时刻了

下面写nodejs的代码

var fs = require('fs');
var params = {
  "id":5,
  "name":"白眉鹰王"
}//在真实的开发中id肯定是随机生成的而且不会重复的,下一篇写如何生成随机切不会重复的随机数,现在就模拟一下假数据
//写入json文件选项
function writeJson(params){
  //现将json文件读出来
  fs.readFile('./mock/person.json',function(err,data){
    if(err){
      return console.error(err);
    }
    var person = data.toString();//将二进制的数据转换为字符串
    person = JSON.parse(person);//将字符串转换为json对象
    person.data.push(params);//将传来的对象push进数组对象中
    person.total = person.data.length;//定义一下总条数,为以后的分页打基础
    console.log(person.data);
    var str = JSON.stringify(person);//因为nodejs的写入文件只认识字符串或者二进制数,所以把json对象转换成字符串重新写入json文件中
    fs.writeFile('./mock/person.json',str,function(err){
      if(err){
        console.error(err);
      }
      console.log('----------新增成功-------------');
    })
  })
}
writeJson(params)//执行一下;

结果如下

详解利用nodejs对本地json文件进行增删改查

下面我们来看一下json文件的结果

详解利用nodejs对本地json文件进行增删改查

看,json文件已经被新增进来了

2.删

var fs = require('fs');
//删除json文件中的选项
function deleteJson(id){
  fs.readFile('./mock/person.json',function(err,data){
    if(err){
      return console.error(err);
    }
    var person = data.toString();
    person = JSON.parse(person);
    //把数据读出来删除
    for(var i = 0; i < person.data.length;i++){
      if(id == person.data[i].id){
        //console.log(person.data[i])
        person.data.splice(i,1);
      }
    }
    console.log(person.data);
    person.total = person.data.length;
    var str = JSON.stringify(person);
    //然后再把数据写进去
    fs.writeFile('./mock/person.json',str,function(err){
      if(err){
        console.error(err);
      }
      console.log("----------删除成功------------");
    })
  })
}
deleteJson(5);//执行一下

详解利用nodejs对本地json文件进行增删改查

详解利用nodejs对本地json文件进行增删改查

第5个就删除了

3.改

一开始的json文件是这个样子的

详解利用nodejs对本地json文件进行增删改查

下面上代码

var fs = require('fs');
var params = {
  "name":"孙悟空"
}
function changeJson(id,params){
  fs.readFile('./mock/person.json',function(err,data){
    if(err){
      console.error(err);
    }
    var person = data.toString();
    person = JSON.parse(person);
    //把数据读出来,然后进行修改
    for(var i = 0; i < person.data.length;i++){
      if(id == person.data[i].id){
        console.log('id一样的');
        for(var key in params){
          if(person.data[i][key]){
            person.data[i][key] = params[key];
          }
        }
      }
    }
    person.total = person.data.length;
    var str = JSON.stringify(person);
    //console.log(str);
    fs.writeFile('./mock/person.json',str,function(err){
      if(err){
        console.error(err);
      }
      console.log('--------------------修改成功');
      console.log(person.data);
    })
  })
}
changeJson(3,params)//执行一下;

结果如下

详解利用nodejs对本地json文件进行增删改查

看一下json文件

详解利用nodejs对本地json文件进行增删改查

修改成功!!!!

4.查

现在模拟一下分页

先看一下json文件长什么样

详解利用nodejs对本地json文件进行增删改查

上代码

var fs = require('fs');
//通过传回来的页数,进行分页模拟
function pagination(p,s){
  //p为页数,比如第一页传0,第二页传1,s为每页多少条数据
  fs.readFile('./mock/person.json',function(err,data){
    if(err){
      console.error(err);
    }
    var person = data.toString();
    person = JSON.parse(person);
    //把数据读出来
    //console.log(person.data);
    var length = person.data.length;
    var pagePerson = person.data.slice(s*p,(p+1)*s);
    console.log('------------------------查询成功pagePerson');
    console.log(pagePerson);
  })
}
pagination(0,6);//查询第一页,每页的数据条数为6条

执行结果为

详解利用nodejs对本地json文件进行增删改查

下面看一下第二页

执行pagination(1,6);

执行结果为

详解利用nodejs对本地json文件进行增删改查

以此类推,就实现了模拟分页的效果

5.总结

ok,一套基本的增删改查就这样写完了,感觉node还是特别强大的,感觉自己又进步了一些,虽然可能有人觉得这样写没有意义,也许吧,但是我觉得很有意义,让我也收获了不少!!!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs教程之异步I/O
Nov 21 NodeJs
windows下安装nodejs及框架express
Aug 07 NodeJs
NodeJS中的MongoDB快速入门详细教程
Nov 11 NodeJs
nodejs+express实现文件上传下载管理网站
Mar 15 NodeJs
nodejs中模块定义实例详解
Mar 18 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
Mar 18 NodeJs
NodeJS实现微信公众号关注后自动回复功能
May 31 NodeJs
Windows下快速搭建NodeJS本地服务器的步骤
Aug 09 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
基于nodejs res.end和res.send的区别
May 14 NodeJs
NodeJS搭建HTTP服务器的实现步骤
Oct 12 NodeJs
nodejs实现聊天机器人功能
Sep 19 #NodeJs
图解NodeJS实现登录注册功能
Sep 16 #NodeJs
详解NodeJs项目 CentOs linux服务器线上部署
Sep 16 #NodeJs
nodejs一个简单的文件服务器的创建方法
Sep 13 #NodeJs
nodejs的安装使用与npm的介绍
Sep 11 #NodeJs
5分钟教你用nodeJS手写一个mock数据服务器的方法
Sep 10 #NodeJs
NodeJS 文件夹拷贝以及删除功能
Sep 03 #NodeJs
You might like
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
Laravel 数据库加密及数据库表前缀配置方法
2019/10/10 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
从sohu弄下来的flash中展示图片的代码
2007/04/27 Javascript
jquery $(document).ready() 与window.onload的区别
2009/12/28 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
两个数组去重的JS代码
2013/12/04 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
JS实现网页游戏中滑块响应鼠标点击移动效果
2015/10/19 Javascript
学习JavaScript设计模式(策略模式)
2015/11/26 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
JS控制伪元素的方法汇总
2016/04/06 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
js时间戳格式化成日期格式的多种方法介绍
2017/02/16 Javascript
jQuery tip提示插件(实例分享)
2017/04/28 jQuery
JS中图片压缩的方法小结
2017/11/14 Javascript
vue+springmvc导出excel数据的实现代码
2018/06/27 Javascript
解决bootstrap-select 动态加载数据不显示的问题
2018/08/10 Javascript
layui使用表格渲染获取行数据的例子
2019/09/13 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
vue实现抽屉弹窗效果
2020/11/15 Javascript
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python直接获取API传递回来的参数方法
2018/12/17 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
python实现飞船大战
2020/04/24 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
2020/11/27 Python
让IE支持CSS3的不完全兼容方案
2014/09/19 HTML / CSS
Java中compareTo和compare的区别
2016/04/12 面试题
超市实习总结自我鉴定
2013/09/19 职场文书
运动会演讲稿50字
2014/08/25 职场文书
科技活动周标语
2014/10/08 职场文书
微信早安问候语
2015/11/10 职场文书