Created
April 16, 2015 14:11
-
-
Save sanjay1909/5b975be3f118f76ea0af to your computer and use it in GitHub Desktop.
Basic Hrrtp server, to load file for the request and server response time to get for an ajax call
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var port = 8001; | |
var serverUrl = "127.0.0.1"; | |
var http = require("http"); | |
var path = require("path"); | |
var fs = require("fs"); | |
var url = require('url'); | |
var responseStartTime; | |
console.log("Web server starting at " + serverUrl + ":" + port); | |
var extensions = { | |
".html": "text/html", | |
".js": "application/javascript", | |
".css": "text/css", | |
".txt": "text/plain", | |
".jpg": "image/jpeg", | |
".gif": "image/gif", | |
".png": "image/png" | |
}; | |
var server = http.createServer(function (request, response) { | |
responseStartTime = Date.now(); | |
var urlName = request.url || "index.html"; | |
var ext = path.extname(urlName); | |
var pathName = url.parse(urlName).pathname; | |
var physicalPath = __dirname; | |
var validExt = extensions[ext]; | |
if (validExt) { // loads supported extension | |
physicalPath += urlName; | |
addFileToResponse(physicalPath, response, validExt); | |
} else if (pathName == '/serverResponseTime') { // ajax call response | |
sendServerResponseTime(response) | |
} else { | |
console.log("not supported sorry"); | |
} | |
}); | |
function addFileToResponse(localPath, res, mimeType) { | |
fs.exists(localPath, function (exists) { | |
if (exists) { | |
fs.readFile(localPath, function (err, contents) { | |
if (!err) { | |
res.setHeader("Content-Length", contents.length); | |
res.setHeader("Content-Type", mimeType); | |
res.statusCode = 200; | |
res.write(contents); | |
res.end(); | |
} else { | |
res.writeHead(500); | |
res.end(); | |
} | |
}); | |
} else { | |
console.log("File not found: " + urlName); | |
response.writeHead(404); | |
response.end(); | |
} | |
}); | |
} | |
function sendServerResponseTime(response) { | |
var responseTime = { | |
startTime: responseStartTime, | |
endTime: Date.now() | |
}; | |
var resTimeAsJson = JSON.stringify(responseTime); | |
response.setHeader("Content-Length", resTimeAsJson.length); | |
response.setHeader("Content-Type", 'application/json'); | |
response.statusCode = 200; | |
response.write(resTimeAsJson); | |
response.end(); | |
} | |
server.listen(port, serverUrl); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment