소스 검색

Add try catch for ping

shamoon 2 년 전
부모
커밋
f1a33f10ed
1개의 변경된 파일24개의 추가작업 그리고 17개의 파일을 삭제
  1. 24 17
      src/pages/api/ping.js

+ 24 - 17
src/pages/api/ping.js

@@ -14,22 +14,29 @@ export default async function handler(req, res) {
         error: "No ping URL given",
         });
     }
-    
-    let startTime = performance.now();
-    let [status] = await httpProxy(pingURL, {
-      method: "HEAD"
-    });
-    let endTime = performance.now();
-    
-    if (status > 403) {
-      // try one more time as a GET in case HEAD is rejected for whatever reason
-      startTime = performance.now();
-      [status] = await httpProxy(pingURL);
-      endTime = performance.now();
-    }
 
-    return res.status(200).json({
-      status,
-      latency: endTime - startTime
-    });
+    try {
+      let startTime = performance.now();
+      let [status] = await httpProxy(pingURL, {
+        method: "HEAD"
+      });
+      let endTime = performance.now();
+      
+      if (status > 403) {
+        // try one more time as a GET in case HEAD is rejected for whatever reason
+        startTime = performance.now();
+        [status] = await httpProxy(pingURL);
+        endTime = performance.now();
+      }
+  
+      return res.status(200).json({
+        status,
+        latency: endTime - startTime
+      });
+    } catch (e) {
+      logger.debug("Error attempting ping: %s", JSON.stringify(e));
+      return res.status(400).send({
+        error: 'Error attempting ping, see logs.',
+      });
+    }
 }