7 changed files with 139 additions and 0 deletions
@ -1,2 +1,8 @@ |
|||
# 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