Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var http = require('http'),
- url = require('url'),
- fs = require('fs'),
- qs = require('querystring');
- http.createServer(function(req, res){
- if (req.method == 'POST') {
- var body = '';
- req.on('data', function (chunk) {
- body += chunk;
- });
- req.on('end', function (){
- var post = qs.parse(body);
- fs.readFile('tasks.json', function(err, data){
- if (err) throw err;
- var tasks = JSON.parse(data);
- switch (url.parse(req.url).pathname) { // checking post destination {new task, edit task, complete task}
- case '/add':
- var newTask = {};
- newTask.id = post.id;
- newTask.text = post.text;
- newTask.lastupdate = post.lastupdate;
- newTask.complete = false;
- tasks.tasks.push(newTask);
- break;
- case '/edit':
- tasks.tasks[post.id] = {
- "id":post.id,
- "text":post.text,
- "lastupdate":post.lastupdate
- };
- break;
- case '/complete':
- tasks.tasks[post.id].complete = true;
- }
- fs.writeFile('tasks.json', JSON.stringify({tasks:tasks.tasks}), function(err, data){ // write changed
- if (err) throw err;
- res.writeHead(200, {"Content-type": "text/plain"});
- res.end('OK');
- });
- });
- });
- } else {
- switch (url.parse(req.url).pathname) { // checking mime type from request
- case '/':
- fs.readFile('index.html', function (err, data) {
- if (err) throw err;
- res.writeHead(200, {"Content-type": "text/html"});
- res.write(data);
- res.end();
- });
- break;
- case '/jquery-1.7.2.min.js':
- fs.readFile('jquery-1.7.2.min.js', function (err, data) {
- if (err) throw err;
- res.writeHead(200, {"Content-type": "text/javascript"});
- res.write(data);
- res.end();
- });
- break;
- case '/tasks.json':
- fs.readFile('tasks.json', function (err, data) {
- if (err) throw err;
- res.writeHead(200, {"Content-type": "text/plain"});
- res.end(data);
- res.end();
- });
- break;
- default:
- res.writeHead(404, {"Content-type": "text/plain"});
- res.end('Not found');
- res.end();
- break;
- }
- }
- }).listen(3000);
Add Comment
Please, Sign In to add comment