你好!Nodejs的文件系统对于node的文件系统来说肯定不陌生。这两天一直在思考一个问题,我是否可以在本地操作我的本地json文件,这样就有了一个本地的文本数据库。如果是便利贴或者录音软件,我不需要连接后台数据库。我可以自己操作本地json文件,自己用node写后台。答案是肯定的。让我们一起来实现它。
1.提高
首先,让我们看看演示的目录结构
让我们来看看person.json的内容
没什么问题。下一步是见证奇迹
写下nodejs的代码
var fs=require(' fs ');Varparams={'id' :5,' Name' : '白眉鹰王' }//在实际开发中,id必须随机生成,不会重复。下一篇文章将写如何生成不会随机重复的随机数。现在模拟假数据//写json文件选项函数writeJson(params){ //读出Json文件fs.readfile('。/mock/person.json ',函数(err,data){ if(err){ return console . error(err);} var person=data . tostring();//将二进制数据转换为字符串person=JSON . parse(person);//将字符串转换为json对象person . data . push(params);//将传递的对象推入数组对象。人。总计=人。数据长度;//定义总页数,为以后分页打下基础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)//执行它;结果如下
让我们看看json文件的结果
看,json文件已经被添加了
2.删除
var fs=require(' fs ');//删除选项函数delete json (id) {fs.readfile('。/mock/person.json ',函数(err,data){ if(err){ return console . error(err);} var person=data . tostring();person=JSON . parse(person);//读取数据并删除(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);//执行
第五个被删除了
3.变化
开头的json文件是这样的
下面的代码
var fs=require(' fs ');var params={ ' name ' : ' the Monkey King ' }函数更改JSON (ID,params) {fs.readfile('。/mock/person.json ',函数(err,data) {if (err) {console。错误(err);} var person=data . tostring();person=JSON . parse(person);//读取数据并修改(var I=0;I person . data . length;I) {if (id==person.data [I]。id) {console.log('相同id ');for(params中的var key){ 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)//执行它;结果如下
看看json文件
修改成功!
4.支票
现在模拟分页
让我们看看json文件是什么样子的
上层代码
var fs=require(' fs ');//分页模拟是根据返回的页数进行的。函数pagination(p,s){ //p是页数,比如第一页为0,第二页为1。s是每页有多少条数据fs.readfile('。/mock/person.json ',函数(err,data){ if(err){ console . error . } var person=data . tostring();person=JSON . parse(person);//读出数据//console . log(person . data);var length=person . data . length;var PagePeer=person . data . slice(s * p,(p ^ 1)* s);console . log('-console . log(page person);})}分页(0,6);//查询第一页,每页数据个数为6,执行结果为
让我们看看第二页
执行分页(1,6);
执行结果是
通过类比,实现了模拟分页的效果
5.摘要
好了,一套基本的增删改查都是这样写的。感觉那个节点还是很强大的,感觉自己有了一些进步。虽然有些人可能觉得这样写没有意义,但也许,我觉得很有意义,收获也不少!
以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。