REPL环境
一、Node的REPL基本操作
REPL(Read-eval-print-loop):交互式解析器
在REPL环境下,可以定义和运行变量、函数、对象。
REPL的常用命令:
进入node,即进入了REPL环境,在命令窗口输入node

退出:输入.exit或者连续按ctrl+c两次

点击tab可以打印出Node.js中的所有对象
点击向上/向下可以查看历史命令
.save filename保存输入的命令
.load filename加载文件
在REPL环境下,可以用_代替上一次表达式的结果

1.读文件:
fs.readFile(path[, options], callback) path | | | 文件名或文件描述符。
options(可选参数)默认值: null。
回调会传入两个参数 (err, data),其中 data 是文件的内容。


第一个参数:写入的文件路径
data:写入的内容
-
options |
- encoding | 默认值: 'utf8'。
callback:回调函数
- err
代码补全:
3.追加文件: 注意:文件已存在则覆盖该文件



//先读取 = > 拼接 = >再写入 var fs = require('fs'); fs.readFile('./02_input.txt','utf8',function(err,data){ if(!err){ var newStr = data + ',我叫草莓千层蛋糕'; fs.writeFile('./02_input.txt',newStr,function(err){ if(!err){ console.log('恭喜您,追加成功') }else{ console.log('写入的err') } }) }else{ console.log('读取的err') } })json
- 数组=> 数组字符串 arr => arrStr
- 对象=> 对象字符串 obj => objStr
- 数组包裹对象 => 数组包裹对字符串 [{}] => ArrObjStr
var arrStr = JSON.stringify(arr); console.log(arrStr); var obj = {id:'007',name:'lulu',age:'20',sex:'men'}; var objStr = JSON.stringify(obj); console.log(objStr); var arrObj = [ {id:'001',class:'1班',grade:'100'}, {id:'002',class:'2班',grade:'200'}, {id:'003',class:'3班',grade:'300'}, ] var arrObjStr = JSON.stringify(arrObj); console.log(arrObjStr);["abc","小朋友","you","if_have","many","???"] {"id":"007","name":"lulu","age":"20","sex":"men"} [{"id":"001","class":"1班","grade":"100"},{"id":"002","class":"2班","grade":"200"},{"id":"003","class":"3班","grade":"300"}]转成的json文件里面都是"" 现在要转回arr obj
复制上面的输出arr obj 再用''包裹住
var arrStr = '["abc","小朋友","you","if_have","many","???"]'; var arr = JSON.parse(arrStr); console.log(arr); var objStr = '{"id":"007","name":"lulu","age":"20","sex":"men"}'; var obj= JSON.parse(objStr); console.log(obj); var arrObjStr = '[{"id":"001","class":"1班","grade":"100"},{"id":"002","class":"2班","grade":"200"},{"id":"003","class":"3班","grade":"300"}]'; var arrObj = JSON.parse(arrObjStr); console.log(arrObj);[ 'abc', '小朋友', 'you', 'if_have', 'many', '???' ] { id: '007', name: 'lulu', age: '20', sex: 'men' } [ { id: '001', class: '1班', grade: '100' }, { id: '002', class: '2班', grade: '200' }, { id: '003', class: '3班', grade: '300' } ]
练习:尝试操作json数据,时间15分钟
var str = [ {id:1,names:'路飞',sex:'男',img:''}, {id:2,names:'乌索普',sex:'男',img:''}, {id:3,names:'娜美',sex:'女',img:''} ]要求1:将数据转为字符串存入文件 hzw.json
要求2:向 hzw.json 文件中添加一条数据
{id:'4',names:'罗宾',sex:'女',img:''};要求3:删除 hzw.json 文件中 id 值为2的数据
要求4:将 hzw.json 文件中id为3的数据中的names改为 ‘女帝’;
05.写json.js
// 要求1:将数据转为字符串存入文件 hzw.json var str = [ {id:1,names:'路飞',sex:'男',img:''}, {id:2,names:'乌索普',sex:'男',img:''}, {id:3,names:'娜美',sex:'女',img:''} ] var json_Str = JSON.stringify(str); // console.log(json_Str); var fs = require('fs'); fs.writeFile('./hzw.json',json_Str,function(err){ if(!err){ console.log('json字符串存入文件 hzw.json') }else{ console.log(err); } })06.添加json.js
var fs = require('fs'); var addStr = {id:4,names:'罗宾',sex:'女',img:''}; //我要添加进去 第一步:读取hzw.json文件 json转成数组 最后加的push fs.readFile('./hzw.json','utf8',function(err,data){ if(!err){ // console.log('读取成功'); var arr = JSON.parse(data); // 检验是不是数组 // console.log(arr); arr.push(addStr); //看看添加上去了没 // console.log(arr); //人家json文件放的是字符串 是不是要转回去 var json_arr = JSON.stringify(arr); fs.writeFile('./hzw.json',json_arr,function(err){ if(!err){ console.log('添加成功'); }else{ console.log(err); } }) }else{ console.log('读取失败'); } })07.删除json.js
var fs = require('fs'); // 思路:先read拿到data 再write for遍历 拿到id 不为2的 把他们添加到一个新的数组中 fs.readFile('hzw.json','utf8',function(err,data){ if(!err){ // console.log(data); var arr = JSON.parse(data); // console.log(arr); //定义一个新的数组 存不包含id为2数据 var newArr = []; for(let i=0;i<arr.length;i++){ if(arr[i].id != 2){ //把整个对象添加进去 newArr.push(arr[i]) } } // console.log(newArr); var json_newArr = JSON.stringify(newArr) //最后要转回json字符串格式 fs.writeFile('./hzw.json',json_newArr,function(err){ if(!err){ console.log('删除成功!'); }else{ console.log(err); } }) }else{ console.log('读取err') } })08.修改json.js
var fs = require('fs'); // 思路:先read拿到data 再write for遍历 拿到id=3的 把names修改为 '女帝' fs.readFile('hzw.json','utf8',function(err,data){ if(!err){ // console.log(data); var arr = JSON.parse(data); // console.log(arr); for(let i=0;i<arr.length;i++){ if(arr[i].id == 3){ arr[i].names ='女帝'; } } // console.log(newArr); var json_newArr = JSON.stringify(arr) //最后要转回json字符串格式 fs.writeFile('./hzw.json',json_newArr,function(err){ if(!err){ console.log('修改成功!'); }else{ console.log(err); } }) }else{ console.log('读取err') } })