Skip to content

Instantly share code, notes, and snippets.

@hakobera
Forked from anonymous/app.js
Created December 21, 2012 01:10
Show Gist options
  • Save hakobera/4350010 to your computer and use it in GitHub Desktop.
Save hakobera/4350010 to your computer and use it in GitHub Desktop.
var http = require('http'),
fs = require('fs'),
url = require('url'),
mime = require('mime'),
domain = require('domain');
var server = http.createServer(function (req, res) {
var uri = url.parse(req.url, true),
filename = __dirname + '/public' + uri.pathname;
var requestDomain = domain.create();
requestDomain.on('error', function (err) {
console.error('requestDomain: %s %j', req.url, err);
if (err.code === 'ENOENT') {
res.writeHead(404);
res.end('Not Found');
} else {
res.writeHead(500);
res.end('Internal Server Error');
}
});
requestDomain.run(function () {
res.writeHead(200, { 'Content-Type': mime.lookup(filename) });
fs.createReadStream(filename).pipe(res);
});
});
process.on('uncaughtException', function (err) {
if (err && err.domain) return;
console.error('uncaughtException: %j', err);
process.exit(1);
});
server.listen(1337, function () {
console.log('nstatic server listening on port %d', server.address().port);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment