您的位置:首页 > Web前端 > JavaScript

文件操作与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);
});
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: