详解利用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实现PHP的print_r函数代码
Mar 14 NodeJs
使用upstart把nodejs应用封装为系统服务实例
Jun 01 NodeJs
Nodejs从有门道无门菜鸟起飞必看教程
Jul 20 NodeJs
基于Nodejs利用socket.io实现多人聊天室
Feb 22 NodeJs
Nodejs 和Session 原理及实战技巧小结
Aug 25 NodeJs
nodeJS微信分享
Dec 20 NodeJs
nodeJS模块简单用法示例
Apr 21 NodeJs
nodejs之koa2请求示例(GET,POST)
Aug 07 NodeJs
nodejs中函数的调用实例详解
Oct 31 NodeJs
nodejs异步编程基础之回调函数用法分析
Dec 26 NodeJs
关于NodeJS中的循环引用详解
Jul 23 NodeJs
nodejs中的异步编程知识点详解
Jan 17 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
PHP简介
2006/10/09 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php日期操作技巧小结
2016/06/25 PHP
JavaScript中的变量声明早于赋值分析
2012/03/01 Javascript
JavaScript中的作用域链和闭包
2012/06/30 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
Webwork 实现文件上传下载代码详解
2016/02/02 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
Easy UI动态树点击文字实现展开关闭功能
2017/09/30 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
bootstrap中的导航条实例代码详解
2019/05/20 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
vue开发简单上传图片功能
2020/06/30 Javascript
详解React 元素渲染
2020/07/07 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
十分钟搞定pandas(入门教程)
2019/06/21 Python
Python中遍历列表的方法总结
2019/06/27 Python
python递归下载文件夹下所有文件
2019/08/31 Python
Django 路由层URLconf的实现
2019/12/30 Python
Python简单实现词云图代码及步骤解析
2020/06/04 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
微软马来西亚官方网站:Microsoft马来西亚
2019/11/22 全球购物
安全事故检讨书
2014/01/18 职场文书
音乐学专业求职信
2014/07/22 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书