Permalink
Browse files

add bin/server as a basic node.js http server

  • Loading branch information...
jwagener committed May 4, 2012
1 parent 7d6b167 commit 414f0b084bc5dee0e7ab9c0f418bba073c5904d1
Showing with 40 additions and 0 deletions.
  1. +40 −0 bin/server
View
@@ -0,0 +1,40 @@
+#!/usr/bin/env node
+/*globals Buffer */
+// imports
+var http = require("http"),
+ url = require("url"),
+ path = require("path"),
+ fs = require("fs")
+ port = process.argv[2] || 9090;
+
+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);
+ 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");

0 comments on commit 414f0b0

Please sign in to comment.