From b58fc1feb62982cdb317d143000725d0bb0a0a34 Mon Sep 17 00:00:00 2001 From: Hanna Dubyna Date: Sat, 2 Aug 2025 22:49:06 +0200 Subject: [PATCH 1/2] Completed prep.exercises week1 --- package.json | 5 +++ week1/prep-exercises/1-web-server/index.html | 1 + week1/prep-exercises/1-web-server/server.js | 35 +++++++++++++++++--- week1/prep-exercises/1-web-server/style.css | 3 ++ 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 package.json create mode 100644 week1/prep-exercises/1-web-server/style.css diff --git a/package.json b/package.json new file mode 100644 index 000000000..5302e360a --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "devDependencies": { + "nodemon": "^3.1.10" + } +} diff --git a/week1/prep-exercises/1-web-server/index.html b/week1/prep-exercises/1-web-server/index.html index c64f7dcfa..1250f8e2d 100644 --- a/week1/prep-exercises/1-web-server/index.html +++ b/week1/prep-exercises/1-web-server/index.html @@ -1,5 +1,6 @@ + My First Web Server diff --git a/week1/prep-exercises/1-web-server/server.js b/week1/prep-exercises/1-web-server/server.js index 90cb5ee65..803ce0530 100644 --- a/week1/prep-exercises/1-web-server/server.js +++ b/week1/prep-exercises/1-web-server/server.js @@ -2,13 +2,38 @@ * Exercise 3: Create an HTTP web server */ -const http = require('http'); +const http = require("http"); +const fs = require("fs").promises; //create a server -let server = http.createServer(function (req, res) { - // YOUR CODE GOES IN HERE - res.write('Hello World!'); // Sends a response back to the client - res.end(); // Ends the response +let server = http.createServer(async function (req, res) { + try { + if (req.url === "/") { + const html = await fs.readFile("index.html"); + res.setHeader("Content-Type", "text/html"); + res.write(html); + res.end(); + } else if (req.url === "/index.js") { + const js = await fs.readFile("index.js"); + res.setHeader("Content-Type", "application/javascript"); + res.write(js); + res.end(); + } else if (req.url === "/style.css") { + const css = await fs.readFile("style.css"); + res.setHeader("Content-Type", "text/css"); + res.write(css); + res.end(); + } else { + res.statusCode = 404; + res.write("Not Found"); + res.end(); + } + } catch (error) { + res.statusCode = 500; + res.write("Server error"); + res.end(); + } }); server.listen(3000); // The server starts to listen on port 3000 + diff --git a/week1/prep-exercises/1-web-server/style.css b/week1/prep-exercises/1-web-server/style.css new file mode 100644 index 000000000..84a557db9 --- /dev/null +++ b/week1/prep-exercises/1-web-server/style.css @@ -0,0 +1,3 @@ +#content { + color: blue; +} From 9d71b56fd7c8641cf53626a8a4d377590947312b Mon Sep 17 00:00:00 2001 From: Hanna Dubyna Date: Tue, 5 Aug 2025 22:49:28 +0200 Subject: [PATCH 2/2] finished project for assignments week1 --- .gitignore | 1 + assignments/hackyourtemperature/package.json | 19 ++++++++++++ assignments/hackyourtemperature/server.js | 32 ++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 assignments/hackyourtemperature/package.json create mode 100644 assignments/hackyourtemperature/server.js diff --git a/.gitignore b/.gitignore index b6b402ed9..21c218cae 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,6 @@ npm-debug.log package-lock.json yarn-error.log *.bkp +.env week3/prep-exercise/server-demo/ diff --git a/assignments/hackyourtemperature/package.json b/assignments/hackyourtemperature/package.json new file mode 100644 index 000000000..2eff8a5ab --- /dev/null +++ b/assignments/hackyourtemperature/package.json @@ -0,0 +1,19 @@ +{ + "name": "hackyourtemperature", + "version": "1.0.0", + "main": "server.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "nodemon --env-file=../../.env server.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "type":"module", + "dependencies": { + "express": "^5.1.0", + "express-handlebars": "^8.0.3", + "node-fetch": "^3.3.2" + } +} diff --git a/assignments/hackyourtemperature/server.js b/assignments/hackyourtemperature/server.js new file mode 100644 index 000000000..5c115ddb8 --- /dev/null +++ b/assignments/hackyourtemperature/server.js @@ -0,0 +1,32 @@ +import express from "express"; +const PORT = process.env.PORT; +const app = express(); +app.use(express.json()); + +app.get("/", (req, res) => { + res.send("hello from backend to frontend!"); +}); + +app.post("/weather", (req, res) => { + const cityName = req.body.cityName; + if (!cityName) { + return res.status(400).send("City name is required"); + } + + res.send(`You entered: ${cityName}`); +}); + +app.use((err, req, res, next) => { + if (err) { + return res + .status(400) + .send( + "An error occurred while processing the data. Please check the entered data and try again" + ); + } + next(); +}); + +app.listen(PORT, () => + console.log(`Server is running on http://localhost:${PORT}`) +);