**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);