ソースを参照

better error handling + logging in server.js

jomo 10 年 前
コミット
846b738226
1 ファイル変更25 行追加17 行削除
  1. 25 17
      server.js

+ 25 - 17
server.js

@@ -47,24 +47,32 @@ function requestHandler(req, res) {
   request.url.query = request.url.query || {};
 
   var local_path = request.url.pathname.split("/")[1];
-  console.log("Request: " + request.url.pathname + " (" + local_path + ")");
-  console.log(request.headers);
+  console.log(request.method + " " + request.url.pathname);
 
-  switch (local_path) {
-    case "":
-      routes.index(request, res);
-      break;
-    case "avatars":
-      routes.avatars(request, res);
-      break;
-    case "skins":
-      routes.skins(request, res);
-      break;
-    case "renders":
-      routes.renders(request, res);
-      break;
-    default:
-      asset_request(request, res);
+  try {
+    switch (local_path) {
+      case "":
+        routes.index(request, res);
+        break;
+      case "avatars":
+        routes.avatars(request, res);
+        break;
+      case "skins":
+        routes.skins(request, res);
+        break;
+      case "renders":
+        routes.renders(request, res);
+        break;
+      default:
+        asset_request(request, res);
+    }
+  } catch(e) {
+    var error = JSON.stringify(req.headers) + "\n" + e.stack;
+    logging.error("Error: " + error);
+    res.writeHead(500, {
+      "Content-Type": "text/plain"
+    });
+    res.end(config.debug_enabled ? error : "Internal server error");
   }
 }