Skip to content

Commit 0a8b384

Browse files
committed
Merge pull request http-party#8 from nodejitsu/404-pages
[api] On 404, attempt to serve file /404.html
2 parents 1c5e147 + d32ad4b commit 0a8b384

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

lib/http-server.js

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
var colors = require('colors'),
1010
argv = require('optimist').argv,
1111
static = require('node-static'),
12+
fs = require("fs");
1213
http = require('http');
1314

1415
var HTTPServer = exports.HTTPServer = function (options) {
@@ -37,7 +38,19 @@ HTTPServer.prototype.start = function () {
3738
self.server = http.createServer(function(request, response) {
3839
request.on('end', function() {
3940
self.log('['.grey+'served'.yellow+'] '.grey + request.url);
40-
return self.file.serve(request, response);
41+
return self.file.serve(request, response, function (err, result) {
42+
if (err && err.status == 404) {
43+
// Catch case where there is no 404 file
44+
fs.stat(self.root + "/404.html", function (err, stat) {
45+
if (!err && stat.isFile()) {
46+
self.file.serveFile("/404.html", err.status, {}, request, response);
47+
} else {
48+
response.writeHead(404);
49+
response.end();
50+
}
51+
});
52+
}
53+
});
4154
});
4255
});
4356
self.server.listen(self.port);

0 commit comments

Comments
 (0)