From a6226ef99a6496412750809cd6f18baac595cf88 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Tue, 30 May 2023 10:36:50 +0200 Subject: [PATCH] add API error handling --- api/index.js | 14 +++++++++++--- api/views/index.ejs | 8 ++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/api/index.js b/api/index.js index 5d8341f2..e4c967ff 100644 --- a/api/index.js +++ b/api/index.js @@ -5,6 +5,7 @@ const WebSocket = require("ws"); var last_status = {}; var last_image; var received_picture = false; +var received_error = false; app.use(express.static("public")); app.use(express.json()); @@ -32,7 +33,10 @@ ws.on("message", function message(message) { // console.log("RECEIVED: " + msg.data); }); -ws.on("error", console.error); +ws.on("error", function error(err) { + console.error("error: " + err); + received_error = true; +}); // set the view engine to ejs app.set("view engine", "ejs"); @@ -74,8 +78,12 @@ app.post("/move", function (req, res) { app.get("/connect", function (req, res) { console.log("got connect request"); ws = new WebSocket("ws://10.100.0.40:9001/"); - while (api_connected == false) { } - res.status(200).json({ connected: true }); + while (api_connected == false && received_error == false) { } + if (api_connected) { + res.status(200).json({ connected: true }); + } else { + res.status(400).json({ connected: false }); + } }); diff --git a/api/views/index.ejs b/api/views/index.ejs index 6a8efa5b..d0b03d05 100644 --- a/api/views/index.ejs +++ b/api/views/index.ejs @@ -155,6 +155,14 @@ // console.log(status) document.getElementById("connectedstatus").innerHTML = "Connected: " + status.connected; } + } else { + console.log("error"); + if (this.responseText.length > 0) { + var status = JSON.parse(this.responseText); + // console.log(status) + document.getElementById("connectedstatus").innerHTML = "Connected: " + status.connected; + } + alert("Could not connect to API!"); } }; xhr.send();