Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const app = express();
- const Joi = require('joi');
- const ejs = require('ejs');
- const path = require('path');
- const cookieParser = require('cookie-parser');
- const session = require('express-session');
- const Logger = require('./logger')
- var logger = new Logger();
- function log(mes) {
- const element ={
- id: logi.length + 1,
- message: mes
- };
- logi.push(element);
- }
- const logi = [
- {id:0, message:'init'},
- ];
- app.set('view engine', 'ejs');
- app.set('views', './views');
- app.use(cookieParser('tajnykluczssi'));
- app.use(express.urlencoded ({ extended: true}));
- app.use(session({resave: true, saveUninitialized: true, secret: 'tajnykluczssi'}));
- app.use(express.static(path.join( __dirname, 'static')));
- app.use(express.json());
- const lista = [
- { id: 1, nazwa: 'ALFA ROMEO'},
- { id: 2, nazwa: 'AUDI'},
- { id: 3, nazwa: 'BMW'},
- { id: 4, nazwa: 'CITROEN'},
- { id: 5, nazwa: 'DACIA'}
- ];
- app.get('/', (req, res) => {
- //res.send("Witaj świecie!");
- uzytkownikCiastko = req.signedCookies.uzytkownik;
- res.render('index', {username: 'testowy', uzytkownik: uzytkownikCiastko});
- });
- app.get('/zaloguj' , (req, res) => {
- res.render('zaloguj');
- });
- app.post('/zaloguj', (req, res) => {
- let username = req.body.txtUser;
- let password = req.body.txtPwd;
- if (username == password) {
- // wydanie ciastka
- res.cookie('uzytkownik', username, {signed: true});
- let returnUrl = req.query.returnUrl;
- if (returnUrl)
- res.redirect(returnUrl);
- else
- res.redirect('/');
- }
- else {
- res.render ('zaloguj', {message: "Niepoprawna nazwa użytkownika lub hasło"});
- }
- });
- app.get('/wyloguj', authorize, (req, res ) => {
- //res.cookie('uzytkownik', '', {signed: true});
- res.cookie('uzytkownik', '', {maxAge: -1});
- res.redirect('/');
- });
- app.get('/lista', authorize, (req, res) => {
- log("wyswietlono liste");
- res.render('lista', {lista: lista})
- });
- app.get("/api/logi",(require, res)=>{
- res.send(logi);
- });
- app.get('/ciastko', (req, res) => {
- var cookieValue;
- if (!req.cookies.ciasteczko) {
- cookieValue = new Date().toString();
- res.cookie('ciasteczko', cookieValue);
- }
- else{
- cookieValue = req.cookies.ciasteczko;
- }
- res.render('ciastko', {cookieValue: cookieValue});
- });
- app.get('/tajneciastko', (req, res) => {
- let cookieValue;
- if (!req.signedCookies.tajneciasteczko) {
- cookieValue = new Date().toString();
- res.cookie('ciasteczko', cookieValue, {signed: trued});
- }
- else{
- cookieValue = req.signedCookies.tajneciasteczko;
- }
- res.render('ciastko', {cookieValue: cookieValue});
- });
- app.get('/sesja', (req, res) => {
- let sessionValue;
- if (!req.session.sessionValue) {
- sessionValue = `data w sesji: ${new Date()}`;
- req.session.sessionValue = sessionValue;
- }
- else{
- sessionValue = req.session.sessionValue;
- }
- res.render('sesja', { sessionValue: sessionValue });
- });
- /*
- app.get('/api/lista', (req, res) => {
- res.send([1, 2, 3, 4, 5]);
- });
- */
- app.get('/api/lista/', (req, res) => {
- log("wyswietlono liste");
- res.send(lista);
- //res.send(req.params);
- });
- app.get('/api/lista/:id(\\d+)', (req, res) => {
- let element = lista.find(l => l.id === parseInt(req.params.id));
- if (!element)
- res.status(404).send(`Element o ID: ${req.params.id} nie zostal znaleziony`);
- else res.send(element);
- });
- app.post('/api/lista', (req, res) => {
- const schemat = {
- nazwa: Joi.string().min(2).required()
- };
- var wynik = Joi.validate(req.body, schemat);
- //console.log(wynik);
- if (wynik.error) {
- res.status(400).send(wynik.error.details[0].message);
- return;
- }
- const element ={
- id: lista.length + 1,
- nazwa: req.body.nazwa
- };
- lista.push(element);
- res.send(element);
- });
- app.put('/api/lista/:id(\\d+)', (req, res) => {
- let element = lista.find(l => l.id === parseInt(req.params.id));
- if (!element){
- res.status(404).send(`Element o ID: ${req.params.id} nie zostal znaleziony`);
- return;
- }
- const wynik = sprawdzElement(req.body);
- if (wynik.error) {
- res.status(400).send(wynik.error.details[0].message);
- return;
- }
- element.nazwa = req.body.nazwa;
- res.send(element);
- });
- app.delete('/api/lista/:id(\\d+)', (req, res) => {
- let element = lista.find(l => l.id === parseInt(req.params.id));
- if (!element){
- res.status(404).send(`Element o ID: ${req.params.id} nie zostal znaleziony`);
- return;
- }
- const index = lista.indexOf(element);
- lista.splice(index, 1);
- const wynik = sprawdzElement(req.body);
- res.send(element);
- });
- function sprawdzElement(element){
- const schemat = {
- nazwa: Joi.string().min(2).required()
- };
- return Joi.validate(element, schemat);
- }
- function authorize(req, res, next){
- if (req.signedCookies.uzytkownik){
- req.uzytkownik = req.signedCookies.uzytkownik;
- next();
- }
- else {
- res.redirect('/zaloguj?returnUrl='+req.url);
- }
- }
- app.use((req, res, next) => {
- res.render ('404.ejs', {url: req.url})
- });
- const port = process.env.PORT || 3000;
- app.listen(port, () => console.log('Oczekuje na porcie $(port)...'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement