forked from jamesshore/lets_code_javascript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.js
More file actions
37 lines (31 loc) · 907 Bytes
/
server.js
File metadata and controls
37 lines (31 loc) · 907 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Copyright (c) 2012 Titanium I.T. LLC. All rights reserved. See LICENSE.txt for details.
(function() {
"use strict";
var http = require("http");
var fs = require("fs");
var server;
exports.start = function(homePageToServe, notFoundPageToServe, portNumber, callback) {
if(!portNumber) throw "port number is required";
server = http.createServer();
server.on("request", function(request, response) {
if (request.url === "/" || request.url === "/index.html") {
response.statusCode = 200;
serveFile(response, homePageToServe);
}
else {
response.statusCode = 404;
serveFile(response, notFoundPageToServe);
}
});
server.listen(portNumber, callback);
};
exports.stop = function(callback) {
server.close(callback);
};
function serveFile(response, file) {
fs.readFile(file, function (err, data) {
if (err) throw err;
response.end(data);
});
}
}());