Guest User

Untitled

a guest
Jul 16th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var http = require('http'),
  2.     url  = require('url'),
  3.     fs   = require('fs'),
  4.     qs   = require('querystring');
  5.    
  6. http.createServer(function(req, res){
  7.  
  8.   if (req.method == 'POST') {
  9.     var body = '';
  10.    
  11.     req.on('data', function (chunk) {
  12.         body += chunk;
  13.     });
  14.    
  15.     req.on('end', function (){
  16.       var post = qs.parse(body);
  17.      
  18.       fs.readFile('tasks.json', function(err, data){
  19.         if (err) throw err;
  20.         var tasks = JSON.parse(data);
  21.        
  22.         switch (url.parse(req.url).pathname) {   // checking post destination {new task, edit task, complete task}
  23.           case '/add':
  24.             var newTask = {};
  25.             newTask.id = post.id;
  26.             newTask.text = post.text;
  27.             newTask.lastupdate = post.lastupdate;
  28.             newTask.complete = false;
  29.             tasks.tasks.push(newTask);
  30.             break;
  31.           case '/edit':
  32.             tasks.tasks[post.id] = {
  33.               "id":post.id,
  34.               "text":post.text,
  35.               "lastupdate":post.lastupdate
  36.             };
  37.             break;
  38.           case '/complete':
  39.             tasks.tasks[post.id].complete = true;
  40.         }
  41.        
  42.         fs.writeFile('tasks.json', JSON.stringify({tasks:tasks.tasks}), function(err, data){  // write changed
  43.           if (err) throw err;
  44.           res.writeHead(200, {"Content-type": "text/plain"});
  45.           res.end('OK');
  46.         });
  47.        
  48.       });
  49.      
  50.     });
  51.    
  52.   } else {
  53.     switch (url.parse(req.url).pathname) {                             // checking mime type from request
  54.       case '/':
  55.         fs.readFile('index.html', function (err, data) {
  56.           if (err) throw err;
  57.           res.writeHead(200, {"Content-type": "text/html"});
  58.           res.write(data);
  59.           res.end();
  60.         });
  61.         break;
  62.       case '/jquery-1.7.2.min.js':
  63.         fs.readFile('jquery-1.7.2.min.js', function (err, data) {
  64.           if (err) throw err;
  65.           res.writeHead(200, {"Content-type": "text/javascript"});
  66.           res.write(data);
  67.           res.end();
  68.         });
  69.         break;
  70.       case '/tasks.json':
  71.         fs.readFile('tasks.json', function (err, data) {
  72.           if (err) throw err;
  73.           res.writeHead(200, {"Content-type": "text/plain"});
  74.           res.end(data);
  75.           res.end();
  76.         });
  77.         break;
  78.       default:
  79.         res.writeHead(404, {"Content-type": "text/plain"});
  80.         res.end('Not found');
  81.         res.end();
  82.         break;
  83.     }
  84.   }
  85. }).listen(3000);
Add Comment
Please, Sign In to add comment