Crashing code that does not show up on Webview

**Question: My code crashes

**Current behavior: Keeps on crashing and I don’t know why

Desired behavior: I want my page to show up on the Webview

Repl link: nyttspel_mahde - Replit

code snippet // ws04.js
// Jesper Larsson 2016, 2021

"use strict";

import http from 'http';
import pgp from 'pg-promise';
import url from 'url';

// ---------------- database connection ----------------

const sqlConn = pgp({
    user: 'am5390',             // byt mot eget användarnamn
    password: 'rwcl8lvs',        // byt mot eget lösenhor
    database: 'nyttspel_mahde',         // byt mot den egna databas frågan ställs mot
    host: 'pgserver.mau.se',
    client_encoding: 'UTF8'     // kan ev. undvika en del å/ä/ö-fel
});

// ---------------- service handlers ----------------

const sendBasePage = (resp) => {
    resp.write("<!DOCTYPE html><meta charset='UTF-8'><title>Spelinformation</title>");
    resp.write("Välkommen till denna <strong>webbplats.</strong> Här kan du få information om olika spel samt företaget och plattformar de kan spelas på!\n<ul>")
    resp.write("<li><a href='spel.html'>Spel</a></li>\n");
    resp.write("<li><a href='företag.html'>Företag</a></li>\n");
    resp.write("</ul>");

    resp.write("<form action=kurser method='GET'>\n");
    resp.write("Student-ID: <input type='text' name='student'><br>\n");
    resp.write("<input type='submit' value='Ok'>\n");
    resp.write("</form>\n");
    
    resp.end();
}

const sendNotFound = (req, resp) => {
    resp.statusCode = 404;
    resp.write("<!DOCTYPE html><meta charset='UTF-8'><title>Hittar inte</title>");
    resp.write("Kan inte hitta "+req.url)
    resp.end();
}

const sendSpel = (req, resp) => {
    const handleSpel = (rows) => {
        resp.write("<!DOCTYPE html><meta charset='UTF-8'><title>Spel i listan</title>\n");
        resp.write("<table><tr><th>Spel</th></tr>\n")
    
        for (let i = 0; i < rows.length; i++) {
            resp.write("<tr><td>" + rows[i].spelid+" </td><td>" + rows[i].företagid + "</td><td>" + rows[i].spel + "</td><td> " + rows[i].genre + "</td><td>"
             + rows[i].Åldergräns + " </td></tr>\n");
        }
    
        resp.end("</table>");
    }

    const handleError = (err) => {
        console.log("Error in processing "+req.url+": "+err);
        resp.end("<!DOCTYPE html><title>Fel!</title>Det blev fel! " + err);
    }

    sqlConn.any('select * from Spel')
        .then(handleSpel)
        .catch(handleError);
}

const sendFöretag = (req, resp) => {
     const handleFöretag = (rows) => {
        resp.write("<!DOCTYPE html><meta charset='UTF-8'><title>Företag</title>\n"); 
        resp.write("<table>\n")
        for (let i = 0; i < rows.length; i++) {
            resp.write("<tr><td>"+rows[i].FöretagID+"</td> <td>"+rows[i].Företagnamn+"</td><td>" + rows[i].Högk + "</td></tr>\n");
        }
        resp.end("</table>");
    }

    const handleError = (err) => {
        console.log("Error in processing "+req.url+": "+err);
        resp.end("<!DOCTYPE html><title>Fel!</title>Det blev fel! " + err);
    }

    sqlConn.any('select * from Företag')
        .then(handleFöretag)
        .catch(handleError);
}

const sendKurser = (student, req, resp) => {
    const handleKurser = (rows) => {
        resp.write("<!DOCTYPE html><meta charset='UTF-8'><title>Kurser för "+student+"</title>\n");
        resp.write("<h1>Kurser som student "+student+" läser:</h1>");
        resp.write("<ul>\n")
        for (let i = 0; i < rows.length; i++) {
            resp.write("<li>"+rows[i].kurs+"</li>\n");
        }
        resp.end("</ul>");
    }

    const handleError = (err) => {
        console.log("Error in processing "+req.url+": "+err);
        resp.end("<!DOCTYPE html><title>Fel!</title>Det blev fel! " + err);
    }

    sqlConn.any('select kurs from läser where student=$1', [student])
        .then(handleKurser)
        .catch(handleError);
}

// ---------------- the core request handler ----------------

const handleWebRequest = (req, resp) => {
    const parsed = url.parse(req.url, true);

    if (req.url == "/" || req.url == "/index.html") {
        sendBasePage(resp);
    } else if (req.url == "/spel.html") {
        sendSpel(req, resp);
    } else if (req.url == "/företag.html") {
        sendFöretag(req, resp);
    } else if (parsed.pathname == "/kurser") {
        sendKurser(parsed.query.student, req, resp);
    } else {
        sendNotFound(req, resp);
    }
}

// ---------------- get it started! ----------------

const httpConn = http.createServer(handleWebRequest);
const port = 8080;
httpConn.listen(port);
console.log("Väntar på att någon ska surfa in på http://localhost:" + port);

1 Like

Isn’t your HTTP server in the nyttspel_mahde.js file? If you never require that script in your main index.js file (the file that automatically runs when you click the green Run button), then it will never kick open the HTTP port to be viewed in the WebView.

1 Like

It may be a bit late, but check the console panel for build and compile errors, and dev tools inspector for run time errors.