Advertisement
ADL_Rodrigo_Silva

Untitled

Jul 4th, 2022
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const { Client } = require('pg');
  2. const express = require('express')
  3. const app = express()
  4.  
  5. const conectionPG = {
  6.     user: 'postgres',
  7.     password: 'maxhito',
  8.     host: 'localhost',  // Localhost es MI COMPUTADOR
  9.     database: 'postgres',
  10.     port: '5432',
  11. };
  12.  
  13. const bodyParser = require('body-parser')
  14.  
  15. //especificamos el subdirectorio donde se encuentran las páginas estáticas
  16. app.use(express.static(__dirname + '/public'))
  17.  
  18. //extended: false significa que parsea solo string (no archivos de imagenes por ejemplo)
  19. app.use(bodyParser.urlencoded({ extended: false }))
  20.  
  21. // ********* AQUÍ COMIENZAN LAS RUTAS DE EXPRESS *********
  22.  
  23. // Ingresar un pokemon a la BBDD
  24. app.post('/ingresarPokemonAction', (req, res) => {
  25.  
  26.     let numeroPokemon = req.body.numeroPokemon;
  27.     let nombrePokemon = req.body.nombrePokemon;
  28.     let tipoPokemon = req.body.tipoPokemon;
  29.  
  30.     numeroPokemon = parseInt(numeroPokemon);
  31.  
  32.     let sqlIngresoPokemon = "insert into pokemonGO (id, nombre, tipo) values (" + numeroPokemon + ", '" + nombrePokemon + "', '" + tipoPokemon + "')";
  33.     console.log(sqlIngresoPokemon);
  34.  
  35.     const insertPokemon = new Client(conectionPG);
  36.     insertPokemon.connect();
  37.  
  38.     insertPokemon.query(sqlIngresoPokemon)
  39.     .then( respuesta =>
  40.         {
  41.             console.log("Se ingresó el Pokemon");
  42.             insertPokemon.end();
  43.         })
  44.     .catch( error =>
  45.         {
  46.             console.log("Hicimos la Morición");
  47.             console.log(error);
  48.             insertPokemon.end();
  49.         });
  50.  
  51.         let paginaExito = '<!doctype html><html><head></head><body>';
  52.         paginaExito += '<h3>El pokemon se ha grabado exitosamente</h3>';
  53.         paginaExito += '<br>';
  54.         paginaExito += '<br>';
  55.         paginaExito += '<a href="http://localhost:8080/pokemon.html"> Volver';
  56.         paginaExito += '</body></html>';
  57.  
  58.         res.send(paginaExito);
  59.  
  60.   });
  61.  
  62. // Mostrar los pokemones
  63. app.get('/mostrarPokemonesAction', (request, response) => {  
  64.  
  65.     console.log("Entramos en mostrarPokemonesAction");
  66.     let sqlConsulta = "select * from pokemonGO";
  67.  
  68.     const consultaPokemon = new Client(conectionPG);
  69.     consultaPokemon.connect();
  70.  
  71.     consultaPokemon.query(sqlConsulta)
  72.     .then( respuesta =>
  73.         {
  74.  
  75.             let paginaExito = '<!doctype html><html><head></head><body>';
  76.             paginaExito += '<h3>Los pokemones son los siguientes:</h3>';
  77.             paginaExito += '<br>';
  78.             paginaExito += '<table border=1>';
  79.             paginaExito +=      '<tr>';
  80.             paginaExito +=          '<th>Id Pokemon</th>';
  81.             paginaExito +=          '<th>Nombre Pokemon</th>';
  82.             paginaExito +=          '<th>Tipo Pokemon</th>';
  83.             paginaExito +=          '<th>Eliminar</th>';
  84.             paginaExito +=          '<th>Editar</th>';
  85.             paginaExito +=      '</tr>';
  86.  
  87.             for (let i=0;i<respuesta.rows.length;i++) {
  88.                 paginaExito +=      '<tr>';
  89.                 paginaExito +=          '<th>' + respuesta.rows[i].id + '</th>';
  90.                 paginaExito +=          '<th>' + respuesta.rows[i].nombre + '</th>';
  91.                 paginaExito +=          '<th>' + respuesta.rows[i].tipo + '</th>';
  92.                 paginaExito +=          '<th><a href=eliminarPokemonAction?id=' + respuesta.rows[i].id +  '>Eliminar Pokemon</th>';
  93.                 paginaExito +=          '<th><a href=editarPokemonAction?id=' + respuesta.rows[i].id +  '>Editar Pokemon</th>';
  94.                 paginaExito +=      '</tr>';
  95.             }  
  96.             paginaExito += '</table>';
  97.             paginaExito += '<br>';
  98.             paginaExito += '<a href="http://localhost:8080/pokemon.html"> Volver';
  99.             paginaExito += '</body></html>';
  100.  
  101.             response.send(paginaExito);
  102.  
  103.             consultaPokemon.end();
  104.         })
  105.     .catch( error =>
  106.         {
  107.             console.log("Hicimos la Morición");
  108.             console.log(error);
  109.             consultaPokemon.end();
  110.         });
  111. });
  112.  
  113. // Eliminar una Región en la BBDD
  114. app.get('/eliminarPokemonAction', (request, response) => {
  115.  
  116.     const host = "localhost";
  117.     let miURL = new URL(`http://${host}:${request.url}`);
  118.     const parametros = miURL.searchParams.values;
  119.  
  120.     let idPokemon = 0;
  121.  
  122.     miURL.searchParams.forEach( (id, nombre) =>
  123.     {
  124.         idPokemon = id;
  125.         console.log(`${id} ${nombre}`);
  126.     });
  127.  
  128.     idPokemon = parseInt(idPokemon);
  129.  
  130.     let sqlDelete = "delete from pokemonGO where id = "  + idPokemon + "";
  131.     console.log(sqlDelete);
  132.     const deletePokemon = new Client(conectionPG);
  133.     deletePokemon.connect();
  134.  
  135.     deletePokemon.query(sqlDelete)
  136.     .then( respuesta =>
  137.         {
  138.             console.log("Se eliminó el POkemon");
  139.             deletePokemon.end();
  140.         })
  141.     .catch( error =>
  142.         {
  143.             console.log("Hicimos la Morición");
  144.             console.log(error);
  145.             deletePokemon.end();
  146.         });
  147.  
  148.         response.redirect('mostrarPokemonesAction');
  149.  
  150.   });
  151.  
  152. // Editar un Pokemon en la BBDD
  153. app.get('/editarPokemonAction', (request, response) => {
  154.  
  155.     const host = "localhost";
  156.     let miURL = new URL(`http://${host}:${request.url}`);
  157.     const parametros = miURL.searchParams.values;
  158.  
  159.     let idPokemon = 0;
  160.  
  161.     miURL.searchParams.forEach( (id, nombre) =>
  162.     {
  163.         idPokemon = id;
  164.         console.log(`${id} ${nombre}`);
  165.     });
  166.  
  167.     idPokemon = parseInt(idPokemon);
  168.  
  169.     // Vamos a traer el nombre y el tipo del pokemon, gracias al ID que tenemos
  170.  
  171.         sqlTraerNombre = "select nombre, tipo from pokemonGO where id=" + idPokemon;
  172.         console.log(sqlTraerNombre);
  173.         const consultarPokemon = new Client(conectionPG);
  174.         consultarPokemon.connect();
  175.    
  176.         // constantes para los valores de nombre y tipo
  177.         var nombreAnterior = "";
  178.         var tipoAnterior = "";
  179.  
  180.         consultarPokemon.query(sqlTraerNombre)
  181.         .then( respuesta =>
  182.             {
  183.                 console.log("Se trajeron los datos del pokemon");
  184.                 // constantes para los valores de nombre y tipo
  185.                 var nombreAnterior = "";
  186.                 var tipoAnterior = "";
  187.                 nombreAnterior = respuesta.rows[0].nombre;
  188.                 tipoAnterior = respuesta.rows[0].tipo;
  189.                 console.log(nombreAnterior);
  190.                 console.log(tipoAnterior);
  191.                 consultarPokemon.end();
  192.  
  193.                 // Fin de los select para recuperar el nombre y el tipo
  194.  
  195.                 let paginaExito = '<!doctype html><html><head></head><body>';
  196.                 paginaExito += '<h3>Editar Pokemon:</h3>';
  197.                 paginaExito += '<br>';
  198.                 paginaExito += '<form action="editarNombreYTipoPokemonAction" method="post">';
  199.                 paginaExito += 'ID del Pokemon:  ' + idPokemon;
  200.                 paginaExito += '<br>';
  201.                 paginaExito += '<br>';
  202.                 paginaExito += 'Ingrese el Nuevo Nombre del Pokemon:';
  203.                 paginaExito += '<br>';
  204.                 paginaExito += '<input type="text" name="nuevoNombrePokemon" size="50" value="' + nombreAnterior + '"><br></br>';
  205.                 paginaExito += 'Ingrese el Nuevo Tipo del Pokemon:';
  206.                 paginaExito += '<br>';
  207.                 paginaExito += '<input type="text" name="nuevoTipoPokemon" size="50" value="' + tipoAnterior + '"><br></br>';
  208.                 paginaExito += '<input type="submit" value="Modificar Pokemon">';
  209.                 paginaExito += '<input name="idPokemon" type="hidden" value="' + idPokemon + '"></input>'
  210.                 paginaExito += '</form>';
  211.                 paginaExito += '</body>';
  212.                 paginaExito += '</html>';
  213.  
  214.                 response.send(paginaExito);
  215.  
  216.             })
  217.         .catch( error =>
  218.             {
  219.                 console.log("Hicimos la Morición");
  220.                 console.log(error);
  221.                 consultarPokemon.end();
  222.             });
  223.  
  224. });
  225.  
  226.  
  227. // Editar un Pokemon en la BBDD
  228. app.post('/editarNombreYTipoPokemonAction', (request, response) => {
  229.     console.log("editarNombreYTipoPokemonAction");
  230.    
  231.     let idPokemon = request.body.idPokemon;
  232.     let nuevoNombrePokemon = request.body.nuevoNombrePokemon;
  233.     let nuevoTipoPokemon = request.body.nuevoTipoPokemon;
  234.     console.log(idPokemon);
  235.     console.log(nuevoNombrePokemon);
  236.     console.log(nuevoTipoPokemon);
  237.  
  238.     idPokemon = parseInt(idPokemon);
  239.  
  240.     let sqlEditar = "update pokemonGO set nombre='" + nuevoNombrePokemon + "', tipo='" + nuevoTipoPokemon + "'  where id = "  + idPokemon + "";
  241.     console.log(sqlEditar);
  242.     const editarPokemon = new Client(conectionPG);
  243.     editarPokemon.connect();
  244.  
  245.    
  246.     editarPokemon.query(sqlEditar)
  247.     .then( respuesta =>
  248.         {
  249.             console.log("Se editó el pokemon");
  250.             console.log(respuesta);
  251.             editarPokemon.end();
  252.         })
  253.     .catch( error =>
  254.         {
  255.             console.log("Hicimos la Morición");
  256.             console.log(error);
  257.             editarPokemon.end();
  258.         });
  259.  
  260.         response.redirect('mostrarPokemonesAction');
  261.        
  262.   });
  263.  
  264. /* INICIO DEL SERVIDOR */
  265.  
  266. var server = app.listen(8080, () => {
  267.     console.log('Servidor web iniciado')
  268. })
  269.  
  270.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement