Advertisement
desdemona

aaaaaaaaaaaaaaaaaaaaa

Dec 18th, 2014
601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.06 KB | None | 0 0
  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.             console.log(exts.length);
  23.             if (req.url.toLowerCase() === '/' + exts[i]) {
  24.                 path.exists(exts[i], function (exists) {
  25.                     if (!exists || fs.statSync(exts[i]).isFile()) {
  26.                         console.log('dir for request ' + req.url.toLowerCase() + " not found");
  27.                         res.writeHead(404);
  28.                         res.end();
  29.                         return;
  30.                     }
  31.                     files = fs.readdirSync(exts[i]);
  32.                     console.log(files.length + ' files for request ' + req.url.toLowerCase() + " read");
  33.                     dir = i;
  34.                     res.writeHead(200, { 'Content-Type': 'application/octet-stream' });
  35.                     var count = 0;
  36.                     for (file in files) {
  37.                         console.log("sending " + path.join(dirs[dir], files[file]));                  
  38.                         fs.readFile(path.join(dirs[dir], files[file]), function (error, content) {
  39.                             //console.log(path.join(dirs[dir], files[file]) + ' file');
  40.                             if (error) {
  41.                                 res.writeHead(500);
  42.                                 res.end();
  43.                                 console.log("error");
  44.                             }
  45.                             else {
  46.                                
  47.                                 res.write(content);
  48.                                 //res.end(content, 'utf-8');
  49.                                 console.log("success");
  50.                                 count++;
  51.                             }
  52.  
  53.                             if (count == files.length)
  54.                             { res.end(); }
  55.                         });
  56.  
  57.  
  58.                     }
  59.                     res.end();
  60.                 });
  61.                 console.log(exts.length);
  62.                 break;
  63.             }
  64.         }
  65.         return;
  66.     }
  67.  
  68.     // handling "POST /ocena/1..5" requests
  69.     //if (req.method.toLowerCase() === 'post' && dirName === '/ocena') {
  70.     //  sum = sum + parseInt(baseName);
  71.     //  count++;
  72.     //  currentAverage = sum/count;
  73.     //}
  74.  
  75.     res.writeHead(404);
  76.     res.end();
  77. })
  78. myServer.listen(parseInt(port, 10));
  79. 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