Advertisement
desdemona

jezus

Dec 18th, 2014
576
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var http = require('http');
  2. var fs = require('fs');
  3. var path = require('path');
  4. var url = require('url');
  5.  
  6. var port = process.argv[2] || 8888;
  7. var dirs = {};
  8. dirs = [".//png//",".//jpg//",".//html//",".//js//"];
  9. exts = ["png","jpg", "html","js"];
  10.  
  11. var myServer = http.createServer(function(req, res) {
  12.     console.log('request starting:'+req.method+" "+req.url);
  13.     //var dirName = path.dirname(req.url).toLowerCase();
  14.     //var baseName = path.basename(req.url).toLowerCase();
  15.     //var extName = path.extname(req.url).toLowerCase();
  16.        
  17.     // handling plain files .html/.js
  18.     if (req.method.toLowerCase() === 'get') {
  19.         var files = []
  20.         var dir = 0;
  21.         for (i = 0; i < exts.length; i++)
  22.         {
  23.             console.log(exts.length);
  24.             if (req.url.toLowerCase() === '/' + exts[i])
  25.             {
  26.                 path.exists(exts[i], function (exists) {
  27.                     if (!exists || fs.statSync(exts[i]).isFile()) {
  28.                         console.log('dir for request ' + req.url.toLowerCase() + " not found");
  29.                         res.writeHead(404);
  30.                         res.end();
  31.                         return;
  32.                     }
  33.                     files = fs.readdirSync(exts[i]);
  34.                     console.log(files.length + ' files for request ' + req.url.toLowerCase() + " read");
  35.                     dir = i;
  36.                 });
  37.                 console.log(exts.length);
  38.                 break;
  39.             }    
  40.         }
  41.         console.log(files.length + ' files for request ' + req.url.toLowerCase() + " read");
  42.         for (file in files)
  43.         {
  44.             console.log(path.join(dirs[dir], files[i]) + ' file');
  45.             fs.readFile(path.join(dirs[dir], files[i]), function (error, content) {
  46.                 console.log(path.join(dirs[dir], files[i]) + ' file');
  47.                 if (error) {
  48.                     res.writeHead(500);                  
  49.                     res.end();
  50.                     console.log("error");
  51.                 }
  52.                 else {
  53.                     res.writeHead(200, { 'Content-Type': 'text/html' });
  54.                     //res.write(content, 'utf-8');
  55.                     res.end(content, 'utf-8');
  56.                     console.log("success");
  57.                 }
  58.             });
  59.         }  
  60.  
  61.         return;
  62.     }
  63.    
  64.     // handling "POST /ocena/1..5" requests
  65.     //if (req.method.toLowerCase() === 'post' && dirName === '/ocena') {
  66.     //  sum = sum + parseInt(baseName);
  67.     //  count++;
  68.     //  currentAverage = sum/count;
  69.     //}
  70.  
  71.     //if (!!currentAverage) {
  72.     //  res.writeHead(200, { 'Content-Type': 'text/html' } );
  73.     //  res.end(""+currentAverage,'utf-8');
  74.     //  return;
  75.     //}
  76.  
  77.     res.writeHead(404);
  78.     res.end();
  79. })
  80. myServer.listen(parseInt(port, 10));
  81. console.log("Static file server running at\n  => http://localhost:" + port + "/\nCTRL + C to shutdown")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement