Wrap the jade.compile function in a try...catch block
authorJack Allnutt <m2ys4u@Gmail.com>
Sat, 24 Sep 2011 22:00:47 +0000 (23:00 +0100)
committerJack Allnutt <m2ys4u@Gmail.com>
Sat, 24 Sep 2011 22:00:47 +0000 (23:00 +0100)
node/app.js

index 6afe590a68cc4e0ea689202e109cc532c8c57edf..57d1928913cb373fe4e638a06e4c3b1cbd56a789 100644 (file)
@@ -617,15 +617,19 @@ this.httpHandler = function (request, response) {
                     fs.readFile(__dirname + '/client/index.html.jade', 'utf8', function (err, str) {
                         var html, hash2;
                         if (!err) {
-                            html = kiwi.jade.compile(str)({ "touchscreen": touchscreen, "debug": debug, "secure": secure, "server_set": server_set, "server": server, "nick": nick, "agent": agent, "config": kiwi.config });
-                            hash2 = crypto.createHash('md5').update(html).digest('base64');
-                            kiwi.cache.html[hash] = {"html": html, "hash": hash2};
-                            if (request.headers['if-none-match'] === hash2) {
-                                response.statusCode = 304;
-                            } else {
-                                response.setHeader('Etag', hash2);
-                                response.setHeader('Content-type', 'text/html');
-                                response.write(html);
+                            try {
+                                html = kiwi.jade.compile(str)({ "touchscreen": touchscreen, "debug": debug, "secure": secure, "server_set": server_set, "server": server, "nick": nick, "agent": agent, "config": kiwi.config });
+                                hash2 = crypto.createHash('md5').update(html).digest('base64');
+                                kiwi.cache.html[hash] = {"html": html, "hash": hash2};
+                                if (request.headers['if-none-match'] === hash2) {
+                                    response.statusCode = 304;
+                                } else {
+                                    response.setHeader('Etag', hash2);
+                                    response.setHeader('Content-type', 'text/html');
+                                    response.write(html);
+                                }
+                            } catch (e) {
+                                response.statusCode = 500;
                             }
                         } else {
                             response.statusCode = 500;