garapenean...
This commit is contained in:
parent
77adf56da7
commit
39bf61af39
3
.gitignore
vendored
3
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
node_modules/
|
node_modules/
|
||||||
|
package-lock.json
|
||||||
|
24
index.js
24
index.js
@ -1,29 +1,29 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const app = express();
|
const app = express();
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const bodyParser= require('body-parser');
|
||||||
|
const cookieParser = require('cookie-parser');
|
||||||
|
const routes = require('./routes');
|
||||||
|
const api = require('./routes/api');
|
||||||
|
|
||||||
app.set('port', 8080);
|
app.set('port', 8080);
|
||||||
|
app.set('view engine', 'pug');
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
app.use('/images', express.static(path.join(__dirname, 'public/images')));
|
app.use(bodyParser.urlencoded({extended: true}));
|
||||||
|
app.use(bodyParser.json());
|
||||||
|
app.use(cookieParser());
|
||||||
|
|
||||||
app.get('/', (req, res) => {
|
app.get('/', routes.index);
|
||||||
res.status(200).sendFile(__dirname + '/index.html');
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get('/irudiak', (req, res) => {
|
app.get('/:name', routes.partials);
|
||||||
res.status(200).sendFile(__dirname + '/irudiak.html');
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get('/irudi_:num', (req, res) =>{
|
|
||||||
var num = req.params.num;
|
|
||||||
res.status(200).sendFile(__dirname + '/irudi_'+num+'.html');
|
|
||||||
});
|
|
||||||
|
|
||||||
app.get('*', (req, res, next) => {
|
app.get('*', (req, res, next) => {
|
||||||
res.status(200).send('Eskatu duzun orrialdea ez da aurkitu!');
|
res.status(200).send('Eskatu duzun orrialdea ez da aurkitu!');
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.post('/',api.login);
|
||||||
|
|
||||||
app.listen(app.get('port'), () => {
|
app.listen(app.get('port'), () => {
|
||||||
console.log('Zerbitzaria martxan ' + app.get('port') + ' atakan');
|
console.log('Zerbitzaria martxan ' + app.get('port') + ' atakan');
|
||||||
});
|
});
|
||||||
|
@ -4,7 +4,9 @@
|
|||||||
"description": "03.-Oinarrizko web aplikazio bat eraiki Node.js, Express.js eta Pug erabiliz - Pug",
|
"description": "03.-Oinarrizko web aplikazio bat eraiki Node.js, Express.js eta Pug erabiliz - Pug",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"express": "^4.17.1"
|
"cookie-parser": "^1.4.5",
|
||||||
|
"express": "^4.17.1",
|
||||||
|
"pug": "^3.0.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {},
|
"devDependencies": {},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@ -14,4 +16,3 @@
|
|||||||
"author": "superuser@lainoa.eus",
|
"author": "superuser@lainoa.eus",
|
||||||
"license": "GPL-3.0-or-later"
|
"license": "GPL-3.0-or-later"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
public/css/footer.css
Normal file
12
public/css/footer.css
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
footer{
|
||||||
|
position:fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: max-content;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: #000000;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
59
public/css/header.css
Normal file
59
public/css/header.css
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
header {
|
||||||
|
background-color: #0069ed;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 50px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
align-items: center;
|
||||||
|
z-index: 9;
|
||||||
|
box-shadow: 0 0 25px 0 black;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
header > .back:nth-child(2) {
|
||||||
|
order: 1;
|
||||||
|
position: fixed;
|
||||||
|
left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
header :nth-child(1) {
|
||||||
|
order: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
header > .next:nth-child(3) {
|
||||||
|
order: 3;
|
||||||
|
position: fixed;
|
||||||
|
right: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title{
|
||||||
|
text-align: center;
|
||||||
|
right: 0;
|
||||||
|
left: 0;
|
||||||
|
position: fixed;
|
||||||
|
}
|
||||||
|
|
||||||
|
.next {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border: 10px solid transparent;
|
||||||
|
border-right: 0;
|
||||||
|
border-left: 15px solid white;
|
||||||
|
position: fixed;
|
||||||
|
right: 15px;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
border: 10px solid transparent;
|
||||||
|
border-left: 0;
|
||||||
|
border-right: 15px solid white;
|
||||||
|
position: fixed;
|
||||||
|
left: 15px;
|
||||||
|
display: none;
|
||||||
|
}
|
@ -1,6 +1,8 @@
|
|||||||
.edukiontzia {
|
.edukiontzia {
|
||||||
display: table;
|
display: table;
|
||||||
margin:auto;
|
margin:auto;
|
||||||
|
position: relative;
|
||||||
|
top: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.item1 { grid-area: irudi1; }
|
.item1 { grid-area: irudi1; }
|
||||||
@ -20,8 +22,11 @@
|
|||||||
width: max-content;
|
width: max-content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#unknown, #logged{
|
||||||
|
margin:80px auto auto;
|
||||||
|
}
|
||||||
|
|
||||||
@media only screen and (max-width: 360px) {
|
@media only screen and (max-width: 480px) {
|
||||||
.irudiak{
|
.irudiak{
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
'irudi1'
|
'irudi1'
|
||||||
|
11
routes/api.js
Normal file
11
routes/api.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
/* POST eskaera */
|
||||||
|
|
||||||
|
exports.login = function(req, res){
|
||||||
|
//console.log(req.body);
|
||||||
|
var logged;
|
||||||
|
if(req.body.username != ''){
|
||||||
|
res.cookie('username', req.body.username, { expires: new Date(Date.now() + 900000), 'sameSite':'lax'});
|
||||||
|
logged = true;
|
||||||
|
}
|
||||||
|
res.render('index',{logged: logged, username: req.body.username});
|
||||||
|
};
|
30
routes/index.js
Normal file
30
routes/index.js
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/* GET home orrialdea */
|
||||||
|
|
||||||
|
exports.index = function(req, res){
|
||||||
|
var username;
|
||||||
|
var logged;
|
||||||
|
|
||||||
|
if(req.cookies.username){
|
||||||
|
username = req.cookies.username;
|
||||||
|
logged = true;
|
||||||
|
//console.log(username);
|
||||||
|
}
|
||||||
|
|
||||||
|
res.render('index',{logged: logged, username: username});
|
||||||
|
};
|
||||||
|
|
||||||
|
/* GET orrialde desberdinak */
|
||||||
|
|
||||||
|
exports.partials = function (req, res) {
|
||||||
|
var name;
|
||||||
|
var num;
|
||||||
|
|
||||||
|
if(req.params.name.includes('_')){
|
||||||
|
name = req.params.name.split("_")[0];
|
||||||
|
num = req.params.name.split("_")[1];
|
||||||
|
}else{
|
||||||
|
name = req.params.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
res.render('partials/' + name, {num: num});
|
||||||
|
};
|
2
views/footer.pug
Normal file
2
views/footer.pug
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
//footer.pug
|
||||||
|
footer wproject - 2021
|
6
views/header.pug
Normal file
6
views/header.pug
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
//header.pug
|
||||||
|
header
|
||||||
|
.title
|
||||||
|
h3 ariketa 3
|
||||||
|
.next(onclick='window.location.href="irudiak"')
|
||||||
|
.back(onclick='window.history.go(-1)')
|
18
views/index.pug
Normal file
18
views/index.pug
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
extends layout
|
||||||
|
|
||||||
|
block content
|
||||||
|
|
||||||
|
if logged
|
||||||
|
#logged
|
||||||
|
h1 Kaixo !{username}!!
|
||||||
|
p
|
||||||
|
| Hau Node.js, Express.js eta Pug erabiliz egindako nabigazio adibide bat da.
|
||||||
|
|
||||||
|
else
|
||||||
|
#unknown
|
||||||
|
h4 Erabiltzailea:
|
||||||
|
form(action='./' method='post')
|
||||||
|
input(type='text' name='username')
|
||||||
|
button Sartu
|
||||||
|
p
|
||||||
|
| Oharra: sartzen duzun izena 15 minutuan iraungitzen den cookie batean gordeko da.
|
36
views/layout.pug
Normal file
36
views/layout.pug
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
doctype
|
||||||
|
html(lang='eu')
|
||||||
|
head
|
||||||
|
title Node.js Express.js Pug adibidea
|
||||||
|
meta(name='viewport', content='width=device-width, initial-scale=1.0')
|
||||||
|
base(href='/')
|
||||||
|
link(rel='stylesheet', href='css/styles.css')
|
||||||
|
link(rel='stylesheet', href='css/header.css')
|
||||||
|
link(rel='stylesheet', href='css/footer.css')
|
||||||
|
link(rel='shortcut icon', href='#')
|
||||||
|
|
||||||
|
script.
|
||||||
|
window.onload = function () {
|
||||||
|
var logged = "#{logged}"
|
||||||
|
var path = window.location.pathname;
|
||||||
|
if(path != '/'){
|
||||||
|
document.querySelector('.back').style.display = 'block';
|
||||||
|
document.querySelector('.next').style.display = 'none';
|
||||||
|
}else{
|
||||||
|
document.querySelector('.back').style.display = 'none';
|
||||||
|
if(logged) {
|
||||||
|
document.querySelector('.next').style.display = 'block';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
body
|
||||||
|
|
||||||
|
|
||||||
|
block header
|
||||||
|
include header
|
||||||
|
|
||||||
|
block content
|
||||||
|
|
||||||
|
block footer
|
||||||
|
include footer
|
7
views/partials/irudi.pug
Normal file
7
views/partials/irudi.pug
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
extends ../layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
-var num
|
||||||
|
.edukiontzia
|
||||||
|
h1 Irudi !{num}
|
||||||
|
img.irudi(src='images/irudi_'+num+'.jpg')
|
19
views/partials/irudiak.pug
Normal file
19
views/partials/irudiak.pug
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
extends ../layout.pug
|
||||||
|
|
||||||
|
block content
|
||||||
|
|
||||||
|
.edukiontzia
|
||||||
|
h1 Irudiak
|
||||||
|
.irudiak
|
||||||
|
div
|
||||||
|
img.irudi_1(src='images/irudi_1.jpg' onclick='window.location.href="images/irudi_1.jpg"')
|
||||||
|
p
|
||||||
|
a(href='irudi_1') irudi 1
|
||||||
|
div
|
||||||
|
img.irudi_2(src='images/irudi_2.jpg' onclick='window.location.href="images/irudi_2.jpg"')
|
||||||
|
p
|
||||||
|
a(href='irudi_2') irudi 2
|
||||||
|
div
|
||||||
|
img.irudi_3(src='images/irudi_3.jpg' onclick='window.location.href="images/irudi_3.jpg"')
|
||||||
|
p
|
||||||
|
a(href='irudi_3') irudi 3
|
Loading…
Reference in New Issue
Block a user