7 changed files with 139 additions and 0 deletions
@ -1,2 +1,8 @@ |
|||||
# 4im_node |
# 4im_node |
||||
|
|
||||
|
Repozitář pro práci s NodeJS ve 4.ročníku web pro školní rok 2024/2025 |
||||
|
|
||||
|
### příkazy |
||||
|
- `npm init` - vytvoření package.json |
||||
|
- `npm -v` - zjištění NPM verze |
||||
|
- `node <server>.js` - zapnutí NodeJS skriptu (nejčastěji naše webservery) [<server> název souboru nejčastěji *index.js*] |
@ -0,0 +1,51 @@ |
|||||
|
//načtení knihoven
|
||||
|
const http = require("http"); |
||||
|
const fs = require("fs"); |
||||
|
const path = require("path"); |
||||
|
|
||||
|
const server = http.createServer((req,res) => { |
||||
|
//přečti url
|
||||
|
const filePath = req.url === "/" ? "pages/index.html" : `pages${req.url}.html` |
||||
|
//načti hledaný soubor
|
||||
|
fs.readFile(path.join(__dirname,filePath),"utf-8",(err,data) => { |
||||
|
if (req.url == "/youtube") { |
||||
|
//HTTP status code 302
|
||||
|
res.writeHead(302, {"Location":"https://www.youtube.com"}); |
||||
|
res.end(); |
||||
|
} |
||||
|
else if (err){ |
||||
|
//když soubour není
|
||||
|
res.writeHead(404, {"Content-type":"text/html"}) |
||||
|
res.end("<h1> 404 </h1>") |
||||
|
} else { |
||||
|
//když soubor je
|
||||
|
// res.writeHead(200, {"Content-type" : "text/html"})
|
||||
|
// res.end(data);
|
||||
|
|
||||
|
//přečti menu pro stranku a vlož do data
|
||||
|
fs.readFile(path.join(__dirname,"menu.html"),"utf-8", (err,menuContent) => { |
||||
|
if (err){ |
||||
|
//když server nenalezne menu.html
|
||||
|
res.writeHead(500, {"Content-type":"text/html"}) |
||||
|
res.end("<h1> 500 - Internal Server Error </h1>") |
||||
|
} else { |
||||
|
//vlož menu do data stránky
|
||||
|
data = data.replace(`<div id="menu-con"></div>`, |
||||
|
`<div id="menu-con">${menuContent}</div>`); |
||||
|
|
||||
|
//vlož data
|
||||
|
res.writeHead(200, {"Content-type" : "text/html"}) |
||||
|
res.end(data); |
||||
|
} |
||||
|
}) |
||||
|
|
||||
|
|
||||
|
} |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
const PORT = 3000; |
||||
|
// na české klávesnici
|
||||
|
// ` ->Pravý ALT + 7 (nad písmeny)
|
||||
|
// $ -> pravý ALT + ů
|
||||
|
server.listen(PORT, () => console.log(`http://localhost:${PORT} CTRL+C=STOP`)) |
@ -0,0 +1,10 @@ |
|||||
|
<!-- menu.html obsahuje pouze položky v menu |
||||
|
v pages bude toto vloženo do: |
||||
|
<div id="menu-con"></div> |
||||
|
--> |
||||
|
|
||||
|
<ul> |
||||
|
<li><a href="/">HOME</a></li> |
||||
|
<li><a href="about">About</a></li> |
||||
|
<li><a href="youtube">YouTube</a></li> |
||||
|
</ul> |
@ -0,0 +1,20 @@ |
|||||
|
{ |
||||
|
"name": "webserver_v2", |
||||
|
"version": "2.0.0", |
||||
|
"description": "Maly web server", |
||||
|
"main": "index.js", |
||||
|
"scripts": { |
||||
|
"test": "echo \"Error: no test specified\" && exit 1" |
||||
|
}, |
||||
|
"keywords": [ |
||||
|
"StarterPack", |
||||
|
"Webserver", |
||||
|
"web", |
||||
|
"server", |
||||
|
"begginner", |
||||
|
"school", |
||||
|
"4IM" |
||||
|
], |
||||
|
"author": "KubMakCZ", |
||||
|
"license": "ISC" |
||||
|
} |
@ -0,0 +1,19 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>about</title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<h1>ABOUT</h1> |
||||
|
<div id="menu-con"></div> |
||||
|
<hr> |
||||
|
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolores vel, at excepturi doloribus alias natus optio consequuntur, sed odit eveniet rerum exercitationem id quod, ratione pariatur fugiat! Culpa, corrupti architecto.</p> |
||||
|
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt fugiat quae voluptas reiciendis. Numquam a aspernatur sint, velit beatae, sed ipsam maxime rerum in at deleniti, exercitationem saepe quas vitae.</p> |
||||
|
<p>Exercitationem tenetur mollitia ab modi ad porro blanditiis in rerum commodi maxime sequi beatae voluptates eius provident, eligendi ipsum similique iusto neque ea veniam qui odit nam? Officiis, voluptate accusamus.</p> |
||||
|
<p>Quod in facilis blanditiis explicabo ipsum molestiae eos accusamus, reprehenderit voluptatibus a magnam veritatis ut temporibus tempora, delectus quae exercitationem ab nihil cumque facere sed repellendus sunt natus! Porro, corporis.</p> |
||||
|
<p>Earum dolore mollitia repellendus eveniet ipsum amet vitae ab voluptatibus? Minima nisi architecto ipsa ducimus quas, dicta, id expedita at eos corporis magnam quae provident excepturi aspernatur hic quisquam ipsum.</p> |
||||
|
<p>Dolorem placeat repellat praesentium autem itaque natus nisi? Esse, sequi optio. Accusamus assumenda repudiandae minus tenetur. Obcaecati quisquam similique voluptatem mollitia a aperiam minus dolores, repellendus voluptatum? Magni, et repellat!</p> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,14 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>welcome</title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<h1>WELCOME</h1> |
||||
|
<div id="menu-con"></div> |
||||
|
<hr> |
||||
|
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolores vel, at excepturi doloribus alias natus optio consequuntur, sed odit eveniet rerum exercitationem id quod, ratione pariatur fugiat! Culpa, corrupti architecto.</p> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,19 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<title>Profle</title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<h1>Profily</h1> |
||||
|
<div id="menu-con"></div> |
||||
|
<hr> |
||||
|
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolores vel, at excepturi doloribus alias natus optio consequuntur, sed odit eveniet rerum exercitationem id quod, ratione pariatur fugiat! Culpa, corrupti architecto.</p> |
||||
|
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Nesciunt fugiat quae voluptas reiciendis. Numquam a aspernatur sint, velit beatae, sed ipsam maxime rerum in at deleniti, exercitationem saepe quas vitae.</p> |
||||
|
<p>Exercitationem tenetur mollitia ab modi ad porro blanditiis in rerum commodi maxime sequi beatae voluptates eius provident, eligendi ipsum similique iusto neque ea veniam qui odit nam? Officiis, voluptate accusamus.</p> |
||||
|
<p>Quod in facilis blanditiis explicabo ipsum molestiae eos accusamus, reprehenderit voluptatibus a magnam veritatis ut temporibus tempora, delectus quae exercitationem ab nihil cumque facere sed repellendus sunt natus! Porro, corporis.</p> |
||||
|
<p>Earum dolore mollitia repellendus eveniet ipsum amet vitae ab voluptatibus? Minima nisi architecto ipsa ducimus quas, dicta, id expedita at eos corporis magnam quae provident excepturi aspernatur hic quisquam ipsum.</p> |
||||
|
<p>Dolorem placeat repellat praesentium autem itaque natus nisi? Esse, sequi optio. Accusamus assumenda repudiandae minus tenetur. Obcaecati quisquam similique voluptatem mollitia a aperiam minus dolores, repellendus voluptatum? Magni, et repellat!</p> |
||||
|
</body> |
||||
|
</html> |
Loading…
Reference in new issue