'use strict' var fs = require('fs'), url = require('url'), path = require('path'), http = require('http'), indexHtml = ['index.html', 'default.html']; var root = path.resolve(process.argv[2] || '.'); console.log('Static root dir: ' + root); var server = http.createServer(function(request, response) { var pathname = url.parse(request.url).pathname; var filepath = path.join(root, pathname); fs.stat(filepath, function(err, stats) { if(!err) { if(stats.isFile()) { console.log("isFile"); console.log('200' + request.url); response.writeHead(200); fs.createReadStream(filepath).pipe(response); } else { console.log("isDirectory"); console.log('200' + request.url); var getHtml = indexHtml.some((v) => { let finalPath = path.join(filepath, v); console.log(finalPath); try { if(fs.statSync(finalPath).isFile) { console.log('200' + request.url); response.writeHead(200); fs.createReadStream(finalPath).pipe(response); return true; } } catch { } return false; }); if(!getHtml) { console.log('404' + request.url); response.writeHead(404); response.end('404 Not Found'); } } } else { console.log('404' + request.url); response.writeHead(404); response.end('404 Not Found'); } }); }); server.listen(8080); console.log('Server is running at 127.0.0.1:8080/');
Sign in to make a reply
shadowTy