Skip to content

Instantly share code, notes, and snippets.

@oskarnrk
Forked from ryanflorence/static_server.js
Created January 16, 2014 09:56
Show Gist options
  • Save oskarnrk/8452443 to your computer and use it in GitHub Desktop.
Save oskarnrk/8452443 to your computer and use it in GitHub Desktop.
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var port = process.argv[2] || 8080;
http.createServer(function(request, response) {
var uri = url.parse(request.url).pathname;
var filename = path.join(process.cwd(), uri);
fs.exists(filename, function(exists) {
if (!exists) {
response.writeHead(404, {
'Content-Type': 'text/plain'
});
response.write('404 Not Found\n');
response.end();
return;
}
if (fs.statSync(filename).isDirectory()) {
filename += '/index.html';
}
fs.readFile(filename, 'binary', function(err, file) {
if (err) {
response.writeHead(500, {
'Content-Type': 'text/plain'
});
response.write(err + '\n');
response.end();
return;
}
response.writeHead(200);
response.write(file, 'binary');
response.end();
});
});
}).listen(parseInt(port, 10));
console.log('Static file server running at\n => http://localhost:' + port + '/\nCTRL + C to shutdown');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment