From 157b6221e9eeb77a066b93d0fcea4627b17fba71 Mon Sep 17 00:00:00 2001 From: "adnma186@student.liu.se" <adnma186@student.liu.se> Date: Fri, 8 Mar 2024 16:59:20 +0100 Subject: [PATCH] =?UTF-8?q?b=C3=B6rjan=20p=C3=A5=20js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/app.js | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/server/app.js b/server/app.js index e69de29..40115d1 100644 --- a/server/app.js +++ b/server/app.js @@ -0,0 +1,52 @@ +const http = require("http"); +const fs = require("fs"); +const hostname = "127.0.0.1"; +const port = 3000; +const serverUrl = `http://${hostname}:${port}`; + +const server = http.createServer((req, res) => { + console.log("A new incoming HTTP request has been received with method type: " + req.method); + const requestUrl = new URL(serverUrl + req.url); + const pathComponents = requestUrl.pathname.split("/"); + + if (req.method == "GET") { + switch (pathComponents[1]) { + case "generateSecondView": + generateSecondView(req, res); + break; + default: + sendResponse(res, 200, "text/plain", "Welcome on our server."); + break; + } + } else if (req.method == "OPTIONS") { + sendResponse(res, 204, null, null); + } +}); + +server.listen(port, hostname, () => { + console.log("The server is running and listening at\n" + serverUrl); +}); + +function sendResponse(res, statusCode, contentType, data) { + res.statusCode = statusCode; + if (contentType != null) res.setHeader("Content-Type", contentType); + res.setHeader("Access-Control-Allow-Origin", "*"); + res.setHeader("Access-Control-Allow-Headers", "*"); + if (data != null) res.end(data); + else res.end(); +} + +function generateSecondView(req, res) { + let contentType = 'text/html'; + let filePath = '/Users/adnamaric/Desktop/grupp-4-project/client/secondView.html'; + + fs.readFile(filePath, (err, content) => { + if (err) { + res.writeHead(500); + res.end('Server Error'); + } else { + res.writeHead(200, { 'Content-Type': contentType }); + res.end(content, 'utf-8'); + } + }); +} \ No newline at end of file -- GitLab