Advertisement
Sothian

SSI_Lab3_Express

Nov 17th, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Deklaracja używania express.js
  2. const express = require('express');
  3. const app = express();
  4. app.use(express.json());
  5.  
  6. // Ustawienie co sie wyswietli na stronie glownej http://url.com/
  7. app.get('/', (req,res) => {
  8.     res.send("Witaj swiecie!");
  9. });
  10.  
  11. // Ustawienie wyswietlania pod adresem http://url.com/app/lista
  12. app.get('/app/lista', (req, res) => {
  13.     res.send([1,2,3,4]);
  14. });
  15.  
  16. // Mozemy uzywać zmiennych środowiskowych do ustalenia na jakim porcie się otworzy serwer, ale jest ryzyko że nie ma takiej zmiennek, dlatego zabezpieczamy domyślnym 3000
  17. const port = process.env.PORT || 3000;
  18. // Aplikacja oczekuje na porcie ze zmiennej środowiskowej lub 3000
  19. app.listen(port, () => console.log(`Oczekuje na porcie ${port}`));
  20.  
  21. // Lista do wyświetlania na stronie
  22. const lista = [
  23.     {
  24.         id:1,
  25.         nazwa: 'ALFA ROMEO'
  26.     },
  27.     {
  28.         id:2,
  29.         nazwa: 'AUDI'
  30.     },
  31.     {
  32.         id:3,
  33.         nazwa: 'BMW'
  34.     },
  35.     {
  36.         id:4,
  37.         nazwa: 'CITROEN'
  38.     },
  39. ];
  40.  
  41. // Wyświetlanie listy
  42. app.get('/app/listaAut', (req, res) => {
  43.     res.send(lista);
  44. });
  45.  
  46. //Dzięki ':rok' mozemy podac w adresie jakis argument
  47. app.get('/app/:rok/:miesiac', (req, res) => {
  48.     res.send([req.params]); // res.send([req.query]);
  49. });
  50.  
  51. // Dodajemy możliwość wyświetlania konkretnych aut po id (wpisując w adresie :nazwa mówimy tak jakby że to będzie zmienny argument)
  52. app.get('/app/listaAut/:id', (req, res) => {
  53.     // Najpierw sprawdzamy czy taki element w ogóle istnieje. Parsujemy na int, ponieważ to id, a wszystko co nam przychodzi z adresu to string
  54.     let element = lista.find(l=> l.id === parseInt(req.params.id));
  55.     // Jesli nie odnaleziono to wywalamy 404 z komunikatem
  56.     if(!element) {
  57.         res.status(404).send('Element o takim ID nie zostal znaleziony');
  58.     } else {
  59.         res.send(element);
  60.     }
  61. });
  62.  
  63. // Tworzymy metodę post, dzięki której będziemy mogli przesyłać np. obiekty JSON
  64. app.post('api/lista', (req, res) => {
  65.     // Prosta weryfikacja czy jest cos takiego jak nazwa w body i czy ma >=3 znaki
  66.     if(!req.body.nazwa || req.body.nazwa.length < 3) {
  67.         res.status(404).send('Nazwa jest wymagana i musi miec minimum 3 znaki');
  68.         return;
  69.     }
  70.  
  71.     // Fabrykujemy wysylanego przez POST JSONa
  72.     let element = {
  73.         id: lista.length + 1,
  74.         nazwa: req.body.nazwa
  75.     };
  76.  
  77.     // Push na liste i przeslanie
  78.     lista.push(element);
  79.     res.send(element);
  80. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement