diff --git a/hackyourtemperature/package.json b/hackyourtemperature/package.json new file mode 100644 index 000000000..066c18ba4 --- /dev/null +++ b/hackyourtemperature/package.json @@ -0,0 +1,21 @@ +{ + "name": "hackyourtemperature", + "version": "1.0.0", + "main": "server.js", + "type": "module", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "start": "node server.js", + "dev": "nodemon server.js" + }, + "keywords": [], + "author": "", + "license": "ISC", + "description": "", + "dependencies": { + "express": "^5.1.0", + "express-handlebars": "^8.0.3", + "node-fetch": "^3.3.2", + "nodemon": "^3.1.10" + } +} diff --git a/hackyourtemperature/server.js b/hackyourtemperature/server.js new file mode 100644 index 000000000..1c8b0b174 --- /dev/null +++ b/hackyourtemperature/server.js @@ -0,0 +1,25 @@ +import express from 'express' +import { engine } from 'express-handlebars' +import fetch from 'node-fetch' + + +const app = express() +app.engine('handlebars', engine()) +app.set('view engine', 'handlebars') +app.set('views', './views') + +app.get('/', (req, res) => { + res.render('home') +}) + +app.use(express.json()) + +app.post('/weather', (req, res) => { + const cityName = req.body.cityName + res.json({message: 'City name: ' + cityName}) +}) + + +app.listen(3000, () => { + console.log(`server started on http://localhost:3000`) +}) diff --git a/hackyourtemperature/views/home.handlebars b/hackyourtemperature/views/home.handlebars new file mode 100644 index 000000000..e69de29bb diff --git a/hackyourtemperature/views/layouts/main.handlebars b/hackyourtemperature/views/layouts/main.handlebars new file mode 100644 index 000000000..87d24ab87 --- /dev/null +++ b/hackyourtemperature/views/layouts/main.handlebars @@ -0,0 +1 @@ +

Hello from backend to frontend!

\ No newline at end of file diff --git a/week1/practice-exercises/learnyounode/baby-steps.js b/week1/practice-exercises/learnyounode/baby-steps.js new file mode 100644 index 000000000..e69de29bb diff --git a/week1/prep-exercises/1-web-server/server.js b/week1/prep-exercises/1-web-server/server.js index 90cb5ee65..0ca2b6c30 100644 --- a/week1/prep-exercises/1-web-server/server.js +++ b/week1/prep-exercises/1-web-server/server.js @@ -1,14 +1,43 @@ /** * Exercise 3: Create an HTTP web server */ - -const http = require('http'); +const fs = require('fs').promises +const path = require('path') +const http = require('http') //create a server -let server = http.createServer(function (req, res) { +let server = http.createServer(async function (req, res) { // YOUR CODE GOES IN HERE - res.write('Hello World!'); // Sends a response back to the client - res.end(); // Ends the response -}); + try { + if (req.url === '/') { + const data = await fs.readFile(path.join(__dirname, 'index.html')) + res.writeHead(200, { + 'Content-Type': 'text/html', + }) + res.end(data) + } else if (req.url === '/index.js') { + const data = await fs.readFile(path.join(__dirname, 'index.js')) + res.writeHead(200, { + 'Content-Type': 'application/javascript', + }) + res.end(data) + } else { + res.writeHead(404, { + 'Content-Type': 'text/plain', + }) + res.end('404 not found') + } + } catch (err) { + res.writeHead(500, { + 'Content-Type': 'text/plain', + }) + res.end('server error') + console.error(err) + } + // res.write('Hello World!') // Sends a response back to the client + // res.end() // Ends the response +}) -server.listen(3000); // The server starts to listen on port 3000 +server.listen(3000, () => { + console.log('server is running (listen on port 3000)') +}) // The server starts to listen on port 3000