文件操作与JSON
2016-03-13 19:51
393 查看
var fs = require('fs'); var path = require('path'); var args = process.argv.splice(2); var command = args.shift(); var taskDescription = args.join(' '); var file = path.join(process.cwd(), './tasks'); switch (command) { case 'list': // 列出所有已保存的任务 listTasks(file); break; case 'add': //添加新任务 addTask(file, taskDescription); break; default: console.log('Usage: ' + process.argv[0] + ' list|add [taskDecription]'); } // 从一个文本文件中加载编码为JSON格式的数据 function loadOrInitializeTaskArray(file, cb) { fs.exists(file, function(exists) { var tasks = []; if (exists) { fs.readFile(file, 'utf8', function(err, data) { if (err) throw err; var data = data.toString(); // 把用JSON编码的待办事项数据解析到任务数组中 var tasks = JSON.parse(data || '[]'); cb(tasks); }); } else { cb([]); } }); } function listTasks(file) { loadOrInitializeTaskArray(file, function(tasks) { for(var i in tasks) { console.log(tasks[i]); } }); } // 把任务串行化后放到文件中 function storeTasks(file, tasks) { fs.writeFile(file, JSON.stringify(tasks), 'utf8', function(err) { if (err) throw err; console.log('Saved.'); }); } function addTask(file, taskDescription) { loadOrInitializeTaskArray(file, function(tasks) { tasks.push(taskDescription); storeTasks(file, tasks); }); }
相关文章推荐
- 2016最新手机号码正则、身份证JS正则表达式
- js的一些特性
- 在JavaScript函数中使用EL表达式注意的事项
- JS-DOM Element方法和属性
- 【规范】Servlets和JSP的比较
- JavaScript定时器和进度条案例
- javascript DOM对象
- js
- JavaScript
- 遇到问题-----JS中设置window.location.href跳转无效
- 遇到问题-----JS中设置window.location.href跳转无效
- javascript中的BOM与DOM、JS核心
- 关于javascript的一些内容
- JavaScript学习(三)——利用javascript访问XML文件
- JavaScript之闭包就是个子公司
- jsjl_for_ubuntu12.04
- [置顶] extjs mvc分层代码
- js基础回顾-对象数组篇
- JavaScript实现样式表的简单切换
- JS基础