Skip to content

Instantly share code, notes, and snippets.

@mitrakmt
Created September 27, 2016 06:41
Show Gist options
  • Save mitrakmt/8227f72e4a6ff1381d9b37a966088087 to your computer and use it in GitHub Desktop.
Save mitrakmt/8227f72e4a6ff1381d9b37a966088087 to your computer and use it in GitHub Desktop.

Revisions

  1. mitrakmt created this gist Sep 27, 2016.
    38 changes: 38 additions & 0 deletions serveStaticFiles.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,38 @@
    var http = require("http"),
    url = require("url"),
    path = require("path"),
    fs = require("fs"),
    mime = require("mime")
    port = process.argv[2] || 8888;

    http.createServer(function(request, response) {

    var uri = url.parse(request.url).pathname
    , filename = path.join(process.cwd(), uri);

    path.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, {"Content-Type": mime.lookup(filename)});
    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");