<!-- lang: js --> var http = require("http"), url = require("url"), path = require("path"), fs = require("fs"); http.createServer(function(req, res) { var pathname = __dirname + url.parse(req.url).pathname; if (path.extname(pathname) == "") { pathname += "/index.html"; } fs.exists(pathname, function(exists) { if (exists) { switch (path.extname(pathname)) { case ".html": res.writeHead(200, { "Content-Type" : "text/html" }); break; case ".js": res.writeHead(200, { "Content-Type" : "text/javascript" }); break; case ".css": res.writeHead(200, { "Content-Type" : "text/css" }); break; case ".gif": res.writeHead(200, { "Content-Type" : "image/gif" }); break; case ".jpg": res.writeHead(200, { "Content-Type" : "image/jpeg" }); break; case ".png": res.writeHead(200, { "Content-Type" : "image/png" }); break; case ".bmp": res.writeHead(200, { "Content-Type" : "image/bmp" }); break; default: res.writeHead(200, { "Content-Type" : "application/octet-stream" }); } fs.readFile(pathname, function(err, data) { res.end(data); }); } else { pathname = __dirname + url.parse(req.url).pathname; if (route(pathname, req, res)) { res.end(); } else { res.writeHead(404, { "Content-Type" : "text/html" }); res.end("<h1>404 Not Found</h1>"); } } }); }).listen(8888, "127.0.0.1"); console.log("Server running at http://127.0.0.1:8888/"); function route(pathname, req, res) { try { var app = require(pathname); app.main(req, res); return true; } catch (err) { console.log('Error: %s', err.message); return false; } }