├── MongoDB ├── CRUD │ ├── .gitignore │ └── package.json ├── sesiones-mongo-hbs │ ├── .gitignore │ ├── views │ │ ├── home.handlebars │ │ ├── login.handlebars │ │ ├── registro.handlebars │ │ └── layout │ │ │ └── main.handlebars │ ├── public │ │ ├── Favicon.ico │ │ └── style.css │ ├── usuarios.json │ ├── package.json │ └── server.js └── Ejercicio1 │ └── Eje1.js ├── NodeJs ├── Ejercicio1 │ ├── .gitignore │ ├── index.js │ ├── package-lock.json │ └── ej1.js ├── Ejercicio10 │ ├── .gitignore │ ├── package.json │ ├── ej10.js │ ├── server.js │ └── package-lock.json ├── Ejercicio11 │ ├── .gitignore │ ├── package.json │ ├── server.js │ ├── ej11.js │ └── public │ │ ├── index.html │ │ └── productos.html ├── Ejercicio12 │ ├── .gitignore │ ├── package.json │ ├── ej12.js │ └── server.js ├── Ejercicio13 │ ├── .gitignore │ ├── package.json │ ├── ej13.js │ └── server.js ├── Ejercicio14 │ ├── .gitignore │ ├── server.js │ ├── package.json │ └── ej14.js ├── Ejercicio15 │ ├── .gitignore │ ├── package.json │ ├── server.js │ └── ej15.js ├── Ejercicio16 │ ├── .gitignore │ ├── public │ │ ├── js │ │ │ └── script.js │ │ ├── img │ │ │ └── roman.jpg │ │ ├── css │ │ │ └── estilo.css │ │ └── index.html │ ├── package.json │ ├── index.js │ └── ej16.js ├── Ejercicio28 │ ├── .gitignore │ └── package.json ├── Ejercicio3 │ ├── .gitignore │ ├── index.js │ ├── package.json │ ├── package-lock.json │ └── ej3.js ├── Ejercicio4 │ ├── .gitignore │ ├── index.js │ ├── package.json │ ├── package-lock.json │ └── ej4.js ├── Ejercicio5 │ ├── .gitignore │ ├── numeros.js │ ├── package.json │ ├── index.js │ ├── package-lock.json │ └── ej5.js ├── Ejercicio6 │ ├── .gitignore │ ├── index.js │ ├── package.json │ ├── package-lock.json │ └── ej6.js ├── Ejercicio9 │ ├── .gitignore │ ├── server.js │ ├── package.json │ ├── ej9.js │ └── package-lock.json ├── Ejercicio2 │ ├── .gitignore │ ├── index.js │ ├── package.json │ ├── ej2.js │ └── package-lock.json ├── Ejercicio7 │ ├── index.js │ ├── saludador.js │ ├── package.json │ └── ej7.js ├── Ejercicio8 │ ├── package-lock.json │ ├── server.js │ ├── package.json │ └── ej8.js ├── suma.js ├── Ejercicio17 │ └── ej17.js └── Ejercicio29 │ ├── modules │ └── my-log.js │ └── index.js ├── JavaScript ├── Conceptos-Basicos-Practica │ ├── ej11.js │ ├── ej23.js │ ├── ej38.js │ ├── ej30.js │ ├── ej24.js │ ├── ej1.js │ ├── ej10.js │ ├── ej41.js │ ├── ej42.js │ ├── ej29.js │ ├── ejercicio1.html │ ├── ej18.js │ ├── ej16.js │ ├── ejercicio5.html │ ├── ejercicio4.html │ ├── ejercicio10.html │ ├── ejercicio2.html │ ├── ej31.js │ ├── ejercicio6.html │ ├── ej15.js │ ├── ej4.js │ ├── ej6.js │ ├── ej7.js │ ├── ej9.js │ ├── ej8.js │ ├── Ejercicio1.js │ ├── ej50.js │ ├── ej3.js │ ├── ej47.js │ ├── ej12.js │ ├── ej56.js │ ├── ej53.js │ ├── Ejercicio3.js │ ├── ej40.js │ ├── ej28.js │ ├── Ejercicio6.js │ ├── ej13.js │ ├── Ejercicio10.js │ ├── ej20.js │ ├── ej36.js │ ├── Ejercicio5.js │ ├── ej14.js │ ├── ej32.js │ ├── ej51.js │ ├── ej19.js │ ├── Ejercicio9.js │ ├── ej2.js │ ├── ej37.js │ ├── ej45.js │ ├── Ejercicio4.js │ ├── ej5.js │ ├── ej55.js │ ├── ej58.js │ ├── ej52.js │ ├── ej44.js │ ├── ej57.js │ ├── Ejercicio8.js │ ├── ej49.js │ ├── ej46.js │ ├── ej60.js │ ├── ej22.js │ ├── ej54.js │ ├── ej21.js │ ├── ej35.js │ ├── ej39.js │ ├── ej17.js │ ├── Ejercicio7.js │ ├── ej43.js │ ├── ej26.js │ ├── ej25.js │ ├── ej59.js │ ├── ej48.js │ ├── ej34.js │ ├── Ejercicio2.js │ ├── ej27.js │ └── ej33.js └── JavaScript │ ├── ej66.js │ ├── ej67.js │ ├── ej68.js │ ├── ej71.js │ ├── ej76.js │ ├── ej86.js │ ├── ej87.js │ ├── ej88.js │ ├── ej91.js │ ├── ej77.js │ ├── ej78.js │ ├── ej81.js │ ├── ej62.html │ ├── ej63.html │ ├── ej134.html │ ├── ej61.html │ ├── script.html │ ├── ej65.html │ ├── ej101.html │ ├── ej64.html │ ├── ej69.js │ ├── ej92.js │ ├── ej105.js │ ├── ej70.js │ ├── ej82.js │ ├── ej80.js │ ├── ej90.js │ ├── ej117.js │ ├── ej110.js │ ├── ej102.js │ ├── ej123.js │ ├── ej120.js │ ├── ej72.js │ ├── ej118.js │ ├── ej119.js │ ├── ej114.js │ ├── ej64.js │ ├── ej125.js │ ├── ej115.js │ ├── ej65.js │ ├── ej124.js │ ├── ej111.js │ ├── ej129.js │ ├── ej132.js │ ├── ej122.js │ ├── ej121.js │ ├── ej75.js │ ├── ej106.js │ ├── ej107.js │ ├── ej127.js │ ├── ej126.js │ ├── ej130.js │ ├── ej101.js │ ├── ej131.js │ ├── script.js │ ├── ej116.js │ ├── ej61.js │ ├── ej62.js │ └── ej63.js └── README.md /MongoDB/CRUD/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio1/.gitignore: -------------------------------------------------------------------------------- 1 | package.json -------------------------------------------------------------------------------- /NodeJs/Ejercicio10/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio11/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio12/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio13/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio14/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio15/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio28/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio3/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio4/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio5/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio6/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio9/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/views/home.handlebars: -------------------------------------------------------------------------------- 1 |

HOME de usuarix "{{nombre}}"

-------------------------------------------------------------------------------- /NodeJs/Ejercicio1/index.js: -------------------------------------------------------------------------------- 1 | console.log('Corriendo código desde mi primer script!!!'); -------------------------------------------------------------------------------- /NodeJs/Ejercicio2/.gitignore: -------------------------------------------------------------------------------- 1 | #Ignora la carpeta con todas las dependencias 2 | node_modules -------------------------------------------------------------------------------- /NodeJs/Ejercicio7/index.js: -------------------------------------------------------------------------------- 1 | let mostrar = require('./saludador.js'); 2 | 3 | mostrar('Ezequiel', 'Romero'); -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/public/js/script.js: -------------------------------------------------------------------------------- 1 | console.log('Estamos sirviendo un archivo ECMAScript desde el servidor!!!!!'); 2 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio1/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio1", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1 5 | } 6 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio8/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio8", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1 5 | } 6 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio2/index.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | //Muestro en consola al objeto express 3 | console.log(express); -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/public/img/roman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Romero-Ezequiel/NodeJs/HEAD/NodeJs/Ejercicio16/public/img/roman.jpg -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/public/Favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Romero-Ezequiel/NodeJs/HEAD/MongoDB/sesiones-mongo-hbs/public/Favicon.ico -------------------------------------------------------------------------------- /NodeJs/suma.js: -------------------------------------------------------------------------------- 1 | let SumarDosNumeros = function(){ 2 | return 2+2; 3 | } 4 | 5 | exports.SumarDosNumeros = SumarDosNumeros; 6 | 7 | exports.suma = SumarDosNumeros; -------------------------------------------------------------------------------- /NodeJs/Ejercicio4/index.js: -------------------------------------------------------------------------------- 1 | var oneLinerJoke = require('one-liner-joke'); 2 | 3 | var getRandomJoke = oneLinerJoke.getRandomJoke(); 4 | console.log(getRandomJoke.body); -------------------------------------------------------------------------------- /NodeJs/Ejercicio5/numeros.js: -------------------------------------------------------------------------------- 1 | module.exports = function esPar(numero) { 2 | if(numero % 2 == 0){ 3 | return true; 4 | }else{ 5 | return false; 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio17/ej17.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | Ejercicio 17: Crear una carpeta con el nombre sitio-node 4 | Replicar el sitio usando handlebars y express explicado en la sección 5 | Armar un sitio 6 | */ -------------------------------------------------------------------------------- /NodeJs/Ejercicio14/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const app = express(); 3 | const port = 5000; 4 | 5 | 6 | app.listen(port, ()=>{ 7 | console.log(`El servidor esta corriendo en http://localhost:${port}`); 8 | }); 9 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio7/saludador.js: -------------------------------------------------------------------------------- 1 | module.exports = function saludar(nombre, apellido, saludo = ()=>{ 2 | console.log('Luego de saludar se ejecuta el callback'); 3 | }) { 4 | console.log(`Hola ${nombre} ${apellido}`); 5 | saludo(); 6 | } 7 | 8 | 9 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/public/css/estilo.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background-color: #eee; 3 | color: green; 4 | font-family: Arial, Helvetica, sans-serif; 5 | } 6 | 7 | h1{ 8 | font-weight: normal; 9 | } 10 | 11 | img{ 12 | border-radius: 5px; 13 | } -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej11.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 11 3 | Crear un documento con el nombre ej11.js 4 | Mostrar el siguiente mensaje: 5 | 6 | Me gusta mucho ECMAScript, en consola sin utilizar una variable 7 | */ 8 | 9 | console.log('Me gusta mucho ECMAScript'); -------------------------------------------------------------------------------- /NodeJs/Ejercicio9/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const port = 5000; 3 | const app = express(); 4 | 5 | app.listen(port, (error)=>{ 6 | if (error) return console.log(`Error: ${error}`); 7 | console.log(`Servidor corriendo en el puerto ${port}`); 8 | }); 9 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej66.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 66 3 | Crear un documento con el nombre ej66.js 4 | Mostrar en consola los números del 0 al 10 utilizando la estructura while 5 | */ 6 | 7 | i=0; 8 | while(i <= 10){ 9 | console.log(i); 10 | i++; 11 | 12 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio8/server.js: -------------------------------------------------------------------------------- 1 | const http = require('http'); 2 | const puerto = 3001; 3 | const server = http.createServer(); 4 | 5 | server.listen(puerto, (error) => { 6 | if (error) return console.log(`Error: ${error}`); 7 | console.log(`Servidor corriendo en el puerto ${puerto}`) 8 | }) -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej67.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 67 3 | Crear un documento con el nombre ej67.js 4 | Mostrar en consola los números del 100 al 0 utilizando la estructura while 5 | */ 6 | 7 | let i=100; 8 | 9 | while(i >= 0){ 10 | console.log(i); 11 | i--; 12 | 13 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej68.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 68 3 | Crear un documento con el nombre ej68.js 4 | Mostrar en consola los números pares del 0 al 1000 utilizando la estructura while 5 | */ 6 | 7 | let i = 0; 8 | 9 | while(i <= 1000){ 10 | console.log(i); 11 | i++; 12 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio3/index.js: -------------------------------------------------------------------------------- 1 | const Logger = require('logplease'); 2 | const logger = Logger.create('utils'); 3 | logger.debug(`Hola Mundo de Node`); 4 | logger.info(`Información de último momento, Node.js es lo más!!`); 5 | logger.warn(`Tirando warnings como campeones`); 6 | logger.error(`Algo no está bien!!!`); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej71.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 71 3 | Crear un documento con el nombre ej71.js 4 | Mostrar en consola la tabla de multiplicar del 9 (de 1 a 10) utilizando 5 | la estructura while 6 | */ 7 | 8 | let i=0; 9 | 10 | while(i <= 10){ 11 | 12 | console.log(i*(9)); 13 | i++; 14 | } -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej23.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 23 3 | Crear un documento con el nombre ej23.js 4 | Declarar la variable nombre 5 | Mostrar el valor de la variable de la siguiente forma: 6 | console.log(nombreDeLaVariable, valor) 7 | */ 8 | 9 | let nombre = 'Ezequiel'; 10 | console.log('nombre, '+nombre); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej76.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 76 3 | Crear un documento con el nombre ej76.js 4 | Copiar y pegar el código del ejercicio ej66.js 5 | Refactorizar el código utilizando la estructura do/while en lugar de while 6 | */ 7 | 8 | i=0; 9 | do{ 10 | console.log(i); 11 | i++; 12 | }while(i <= 10) -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej86.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Ejercicio 86 4 | Crear un documento con el nombre ej86.js 5 | Copiar y pegar el código del ejercicio ej76.js 6 | Refactorizar el código utilizando la estructura for en lugar de do/while 7 | */ 8 | 9 | 10 | for(let i=0; i <= 10; i++){ 11 | console.log(i); 12 | } 13 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej87.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 87 3 | Crear un documento con el nombre ej87.js 4 | Copiar y pegar el código del ejercicio ej77.js 5 | Refactorizar el código utilizando la estructura for en lugar de do/while 6 | */ 7 | 8 | 9 | 10 | for(let i = 100; i >=0 ; i--){ 11 | console.log(i); 12 | } 13 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej88.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * Ejercicio 88 4 | Crear un documento con el nombre ej88.js 5 | Copiar y pegar el código del ejercicio ej78.js 6 | Refactorizar el código utilizando la estructura for en lugar de do/while 7 | */ 8 | 9 | let i = 0; 10 | for(i; i <= 1000; i++){ 11 | console.log(i); 12 | } -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/usuarios.json: -------------------------------------------------------------------------------- 1 | {"_id":{"$oid":"5e4dd13dc6b20321bf4e3ab7"},"user":"gabi","pass":"123"} 2 | {"_id":{"$oid":"5e4dd17cc6b20321bf4e3ab8"},"user":"damian","pass":"123"} 3 | {"_id":{"$oid":"5e4dd276ccefc42732762f32"},"user":"eze","pass":"123"} 4 | {"_id":{"$oid":"5e4ddb7accefc42732762f33"},"user":"pepe","pass":"123"} 5 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio7/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio7", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio8/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio8", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej8.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej38.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 38 3 | Crear un documento con el nombre ej38.js 4 | Declarar una variable nombre con tu nombre como valor 5 | Mostrar en consola la cantidad de letras que tiene tu nombre 6 | */ 7 | 8 | let nombre = 'Ezequiel'; 9 | 10 | console.log(`Mi nombre tiene ${nombre.length} letras`) -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej91.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 91 3 | Crear un documento con el nombre ej91.js 4 | Copiar y pegar el código del ejercicio ej81.js 5 | Refactorizar el código utilizando la estructura for en lugar de do/while 6 | */ 7 | 8 | let i=0; 9 | 10 | for(i; i <= 10; i++){ 11 | console.log(i*(9)); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej30.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 30 3 | Crear un documento con el nombre ej30.js 4 | Calcular y mostrar en consola el área de un cuadrado (lado al cuadrado) 5 | La longitud del lado es de 5 6 | */ 7 | 8 | 9 | let area, lado=5; 10 | 11 | area = lado**2; 12 | 13 | console.log(`El area del cuadrado es ${area}`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej24.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 24 3 | Crear un documento con el nombre ej24.js 4 | Declarar la variable nombre y asignar el siguiente valor: null 5 | Mostrar el valor de la variable de la siguiente forma: 6 | console.log(nombreDeLaVariable, valor) 7 | */ 8 | 9 | let nombre = null; 10 | console.log('nombre, '+nombre); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej77.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 77 3 | Crear un documento con el nombre ej77.js 4 | Copiar y pegar el código del ejercicio ej67.js 5 | Refactorizar el código utilizando la estructura do/while en lugar de while 6 | */ 7 | 8 | let i=100; 9 | 10 | do{ 11 | console.log(i); 12 | i--; 13 | 14 | } 15 | while(i >= 0) -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej78.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 78 3 | Crear un documento con el nombre ej78.js 4 | Copiar y pegar el código del ejercicio ej68.js 5 | Refactorizar el código utilizando la estructura do/while en lugar de while 6 | */ 7 | 8 | 9 | let i = 0; 10 | 11 | do{ 12 | console.log(i); 13 | i++; 14 | } 15 | while(i <= 1000) -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej81.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 81 3 | Crear un documento con el nombre ej81.js 4 | Copiar y pegar el código del ejercicio ej71.js 5 | Refactorizar el código utilizando la estructura do/while en lugar de while 6 | */ 7 | 8 | 9 | let i=0; 10 | 11 | do{ 12 | console.log(i*(9)); 13 | i++; 14 | } 15 | while(i <= 10) -------------------------------------------------------------------------------- /NodeJs/Ejercicio13/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio13", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej13.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Ezequiel Romero", 10 | "license": "ISC", 11 | "dependencies": { 12 | "express": "^4.17.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio15/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio15", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej15.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "Ezequiel Romero", 10 | "license": "ISC", 11 | "dependencies": { 12 | "express": "^4.17.1" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej1.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ejercicio 1 3 | Crear un documento con el nombre ej1.js 4 | Declarar una variable nombre 5 | Declarar una variable apellido 6 | Declarar una variable edad 7 | Declarar una variable fecha de nacimiento utilizando camel case 8 | Declarar una variable direccion 9 | * 10 | */ 11 | 12 | var nombre, apellido, edad, fechaNac, direccion; 13 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio de Switch 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio Switch 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio6/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function saludar(nombre, apellido, saludo = ()=>{ 2 | console.log('Luego de saludar se ejecuta el callback'); 3 | }) { 4 | console.log(`Hola ${nombre} ${apellido}`); 5 | saludo(); 6 | } 7 | 8 | let mostrar = require('./index.js'); 9 | mostrar('Ezequiel', 'Romero'); 10 | 11 | //Utilizar npm start para ejecutar el ejercicio en la consola -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej10.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 10 3 | Crear un documento con el nombre ej10.js 4 | Declarar una variable saludo 5 | Asignar el valor: ECMAScript rocks!! a la variable saludo, 6 | con el tipo de dato string 7 | 8 | Mostrar el contenido de la variable saludo utilizando console.log() 9 | */ 10 | 11 | let saludo = 'ECMAScript rocks!!'; 12 | console.log(saludo); -------------------------------------------------------------------------------- /NodeJs/Ejercicio2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio2", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio3", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej3.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "logplease": "^1.2.15" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio5/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio5", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej5.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "logplease": "^1.2.15" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio9/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio9", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej9.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej134.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio Adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio10/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio10", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej10.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio11/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio11", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej11.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio12/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio12", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej12.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio14/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio14", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej14.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio16", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio4", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "ej4.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "one-liner-joke": "^1.2.0" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio6/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio6", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node index.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "logplease": "^1.2.15" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej41.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 41 3 | Crear un documento con el nombre ej41.js 4 | Declarar la variable texto y asignar el siguiente valor: HOLA MUNDO 5 | Mostrar en consola el contenido de la variable texto en minúscula 6 | */ 7 | 8 | let texto = 'HOLA MUNDO'; 9 | /* El metodo toLowerCase() convierte mayusculas a minusculas */ 10 | console.log(texto.toLowerCase()); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej42.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 42 3 | Crear un documento con el nombre ej42.js 4 | Declarar la variable texto y asignar el siguiente valor: hola mundo 5 | Mostrar en consola el contenido de la variable texto en mayúscula 6 | */ 7 | 8 | const texto = 'hola mundo'; 9 | //El metodo toUpperCase() convierte de minusculas a mayusculas 10 | console.log(texto.toUpperCase()); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej61.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios Adicionales 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/script.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej29.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 29 3 | Crear un documento con el nombre ej29.js 4 | Calcular y mostrar en consola el perímetro de un cuadrado 5 | (el perímetro es simplemente cuatro veces la longitud del lado) 6 | La longitud del lado es de 10 7 | */ 8 | 9 | let perímetro, lado = 10; 10 | 11 | perímetro = lado * lado; 12 | 13 | console.log(`El perímetro es ${perímetro}`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ejercicio1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios Adicionales 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej65.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio de Repaso 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej18.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 18 3 | Crear un documento con el nombre ej18.js 4 | Declarar una variable local con el valor: Gianu's 5 | Declarar una variable mensaje con el valor: es el "mejor" local 6 | Mostrar en consola el mensaje: Gianu's es el "mejor" local 7 | */ 8 | 9 | let local = "Gianu's", mensaje = 'es el "mejor" local'; 10 | 11 | console.log(`${local} ${mensaje}`); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej101.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios Adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio de Adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej16.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 16 3 | Crear un documento con el nombre ej16.js 4 | Copiar el contenido del ejercicio anterior (ej15) y pegarlo en el nuevo archivo 5 | Modificar el código para mostrar el mismo mensaje en consola pero concatenando 6 | los textos en lugar de utilizar interpolación de texto 7 | */ 8 | 9 | let alumno = 'Pepe'; 10 | console.log('El mejor alumno es:'+ alumno); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ejercicio5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios adicionales 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio29/modules/my-log.js: -------------------------------------------------------------------------------- 1 | //Realizo dos funciones para luego utilizar estas funciones 2 | //en el archivos indexedDB.js para eso las tengo que exportar los modulos locales. 3 | const info = (text) =>{ 4 | console.log("Información", text); 5 | return text; 6 | } 7 | 8 | const error = (text) =>{ 9 | console.log("Error", text); 10 | return text; 11 | } 12 | 13 | module.exports = { info, error}; -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ejercicio4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio Adicional 4 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ejercicio10.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios Adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ejercicio2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios Adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej69.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 69 3 | Crear un documento con el nombre ej69.js 4 | Mostrar en consola la suma parcial de todos los números que van 5 | desde 0 hasta 1000 utilizando la estructura while. 6 | */ 7 | 8 | 9 | let i = 1000, suma; 10 | 11 | const sumar = (n) =>{ 12 | return (n* (n+1) /2); 13 | } 14 | 15 | suma = sumar(i); 16 | console.log(`El resultado es: ${suma}`); 17 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej31.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 31 3 | Crear un documento con el nombre ej31.js 4 | Calcular y mostrar en consola el perímetro de un triangulo (sumar los lados) 5 | El lado 1 es de 10 6 | El lado 2 es de 20 7 | El lado 3 es de 5 8 | */ 9 | 10 | let perímetro, lado1=10, lado2=20, lado3=5; 11 | 12 | perímetro = lado1 + lado2 + lado3; 13 | 14 | console.log(`El perímetro del triangulo es ${perímetro}`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ejercicio6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicios Adicionales 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej92.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 92 3 | Crear un documento con el nombre ej92.js 4 | Copiar y pegar el código del ejercicio ej82.js 5 | Refactorizar el código utilizando la estructura for en lugar de do/while 6 | */ 7 | 8 | let cadena = "*", piramide = "", contador = 0, base = 13; 9 | 10 | for(contador; contador < base; contador++){ 11 | piramide += cadena; 12 | console.log(piramide+ "\n"); 13 | } 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej15.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 15 3 | Crear un documento con el nombre ej15.js 4 | Declarar una variable alumno 5 | Asignar a la variable alumno el nombre del mejor alumno del curso 6 | Mostrar en consola el siguiente mensaje: 7 | El mejor alumno es: y el contenido de la variable alumno 8 | Utilizar interpolación de textos 9 | */ 10 | 11 | let alumno = 'Pepe'; 12 | console.log(`El mejor alumno es: ${alumno}`); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej105.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 105 3 | Crear un documento con el nombre ej105.js 4 | Crear una función que se llame significadoDeLaVida y retorna el número 42 5 | Mostrar en consola el siguiente mensaje: 6 | El significado de la vida es ${significadoDeLaVida} 7 | */ 8 | 9 | const significadoDeLaVida = () =>{ 10 | return 42; 11 | } 12 | 13 | console.log(`El significado de la vida es ${significadoDeLaVida()}`) -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej4.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 4 3 | Crear un documento con el nombre ej4.js 4 | Declarar las siguientes variables de forma individual y asignarle a 5 | cada una un valor para describirte: 6 | 7 | - nombre 8 | - apellido 9 | - edad 10 | - fecha de nacimiento 11 | - direccion 12 | */ 13 | 14 | var nombre = 'Ezequiel'; 15 | var apellido = 'Romero'; 16 | var fechaNac = '25/02/1994'; 17 | var direccion = 'Calle false 1234'; -------------------------------------------------------------------------------- /NodeJs/Ejercicio3/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio3", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "logplease": { 8 | "version": "1.2.15", 9 | "resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz", 10 | "integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio5/index.js: -------------------------------------------------------------------------------- 1 | const Logger = require('logplease'); 2 | 3 | let numero = require('./numeros.js'); 4 | 5 | console.log("El numero 2 es par : " + numero(2)); 6 | console.log("El numero 3 es par : " + numero(3)); 7 | console.log("El numero 101 es par : " + numero(101)); 8 | console.log("El numero 201 es par : " +numero(201)); 9 | console.log("El numero 202 es par : " +numero(202)); 10 | console.log("El numero 100 es par : " +numero(100)); 11 | 12 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio5/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio5", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "logplease": { 8 | "version": "1.2.15", 9 | "resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz", 10 | "integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio6/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio6", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "logplease": { 8 | "version": "1.2.15", 9 | "resolved": "https://registry.npmjs.org/logplease/-/logplease-1.2.15.tgz", 10 | "integrity": "sha512-jLlHnlsPSJjpwUfcNyUxXCl33AYg2cHhIf9QhGL2T4iPT0XPB+xP1LRKFPgIg1M/sg9kAJvy94w9CzBNrfnstA==" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej70.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 70 3 | Crear un documento con el nombre ej70.js 4 | Mostrar en consola la suma parcial de todos los números 5 | impares que van desde 0 hasta 1000 utilizando la estructura while. 6 | */ 7 | 8 | 9 | let i=0, num=0, suma=0; 10 | 11 | while( i <= 1000){ 12 | if(num % 2 ==0){ 13 | suma = suma + num; 14 | i=i+1; 15 | } 16 | num = num +1; 17 | } 18 | 19 | console.log(suma); -------------------------------------------------------------------------------- /NodeJs/Ejercicio4/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio4", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "one-liner-joke": { 8 | "version": "1.2.0", 9 | "resolved": "https://registry.npmjs.org/one-liner-joke/-/one-liner-joke-1.2.0.tgz", 10 | "integrity": "sha512-cyqGnIRKCe25ZERjlyKtpQp4BfN+iV22nC6rLtTMkJh+w300DK+9UitFzJZfilMdFKImKQO+w/G/E1sUSYBsrw==" 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej6.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 6 3 | Crear un documento con el nombre ej6.js 4 | Declarar las siguientes variables de forma individual y asignarle a 5 | cada una un valor para describirte: 6 | 7 | - nombre 8 | - apellido 9 | - edad 10 | - fecha de nacimiento 11 | - direccion 12 | 13 | Mostrar en consola el valor y nombre de cada una de las variables utilizando 14 | console.log() 15 | */ 16 | 17 | //Lo resolvi en el ejercicio anterior -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej82.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 82 3 | Crear un documento con el nombre ej82.js 4 | Copiar y pegar el código del ejercicio ej72.js 5 | Refactorizar el código utilizando la estructura do/while en lugar de while 6 | */ 7 | 8 | let cadena = "*", piramide = "", contador = 0, base = 13; 9 | 10 | //con do while 11 | do{ 12 | piramide += cadena; 13 | console.log(piramide+ "\n"); 14 | contador++; 15 | } 16 | while(contador < base ) -------------------------------------------------------------------------------- /NodeJs/Ejercicio2/ej2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 2 3 | Crear una carpeta con el nombre ej2 4 | Inicializar un proyecto de Node.js utilizando NPM dentro de la carpeta ej2 5 | El nombre del proyecto tiene que ser Ejercicio 2 6 | Crear un archivo index.js 7 | Instalar el módulo Express como dependencia de nuestro proyecto 8 | Configurar el proyecto para que al correr npm start 9 | corra el código del 10 | archivo index.js. Mostrar en consola el objeto express 11 | */ -------------------------------------------------------------------------------- /NodeJs/Ejercicio28/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio28", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "servidor.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "nodemon servidor.js" 9 | }, 10 | "author": "Ezequiel Romero", 11 | "license": "ISC", 12 | "dependencies": { 13 | "express": "^4.17.1" 14 | }, 15 | "devDependencies": { 16 | "nodemon": "^2.0.2" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej7.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 7 3 | Crear un documento con el nombre ej7.js 4 | Copiar el contenido del ej6.js y pegarlo en el nuevo archivo 5 | Cambiar var por let 6 | */ 7 | 8 | let nombre = 'Ezequiel', apellido = 'Romero', 9 | edad = 25, fechaNac = '25/02/1994', direccion = 'Calle falsa 1234'; 10 | 11 | console.log(`Su nombre: ${nombre}, ${apellido} su edad ${edad} años, fecha de nacimiento ${fechaNac} y vive en ${direccion}`); 12 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej80.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 80 3 | Crear un documento con el nombre ej80.js 4 | Copiar y pegar el código del ejercicio ej70.js 5 | Refactorizar el código utilizando la estructura do/while en lugar de while 6 | * 7 | */ 8 | 9 | 10 | let i=0, num=0, suma=0; 11 | 12 | do{ 13 | if(num % 2 ==0){ 14 | suma = suma + num; 15 | i=i+1; 16 | } 17 | num = num +1; 18 | } 19 | while( i <= 1000) 20 | 21 | console.log(suma); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej90.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 90 3 | Crear un documento con el nombre ej90.js 4 | Copiar y pegar el código del ejercicio ej80.js 5 | Refactorizar el código utilizando la estructura for en lugar de do/while 6 | */ 7 | 8 | let i=0, num=0, suma=0; 9 | 10 | for(let i=0; i <= 1000; i++){ 11 | if(num % 2 ==0){ 12 | suma = suma + num; 13 | i=i+1; 14 | } 15 | num = num +1; 16 | } 17 | console.log(suma); 18 | 19 | 20 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej9.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 9 3 | Crear un documento con el nombre ej9.js 4 | Crear una variable nombre como constante y asignale tu nombre 5 | En la línea siguiente asignale a la variable nombre otro valor 6 | Ejecutar el programa y ver que pasa 7 | */ 8 | 9 | //Al ser una variable declarada como constante no se le puede cambiar 10 | //el valor asignado por eso nos tira un error 11 | const nombre = 'Ezequiel'; 12 | nombre = 'Pepe'; 13 | 14 | console.log(nombre); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej117.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 117 3 | Crear un documento con el nombre ej117.js 4 | Declarar un arreglo de alumnos con el nombre de 5 compañeros del curso 5 | Mostrar en consola el nombre del primero, tercer y quinto compañero 6 | */ 7 | 8 | let alumnos = ['ezequiel', 'jose', 'gabriela', 'luis', 'angela']; 9 | 10 | console.log(`El primer alumno que se encuentra en el arreglo es ${alumnos[0]}, 11 | el tercer alumno es ${alumnos[2]} y el quinto alumna es ${alumnos[4]}`) -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej8.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 8 3 | Crear un documento con el nombre ej8.js 4 | Copiar el contenido del ej7.js y pegarlo en el nuevo archivo 5 | Cambiar let por const 6 | */ 7 | 8 | const nombre = 'Ezequiel', 9 | apellido = 'Romero', 10 | edad = 25, fechaNac = '25/02/1994', 11 | direccion = 'Calle falsa 1234'; 12 | 13 | console.log(`Su nombre: ${nombre}, ${apellido} su edad ${edad} años, fecha de nacimiento ${fechaNac} y vive en ${direccion}`); 14 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio1/ej1.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 1 3 | Crear una carpeta con el nombre ej1 4 | Inicializar un proyecto de Node.js utilizando NPM dentro de la carpeta ej1 5 | El nombre del proyecto tiene que ser Ejercicio 1. Crear un archivo index.js 6 | Configurar el proyecto para que al correr npm start corra el código del archivo 7 | index.js. Como resultado de correr el script tiene que mostrar en consola el 8 | siguiente mensaje: 9 | Corriendo código desde mi primer script!!! 10 | */ 11 | 12 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio11/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const port = 3000; 3 | const app = express(); 4 | 5 | app.use('/static', express.static(__dirname +'/public')); 6 | 7 | app.get('/', (req, res)=>{ 8 | res.sendFile(__dirname +'/public/index.html'); 9 | }); 10 | 11 | app.get('/products', (req, res)=>{ 12 | res.sendFile(__dirname +'/public/productos.html'); 13 | }); 14 | 15 | app.listen(port, ()=>{ 16 | console.log(`El servidor corriendo en http://localhost:${port}`); 17 | }); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio1.js: -------------------------------------------------------------------------------- 1 | /** 2 | Solicita un nombre, la edad y muestra por consola el mensaje 3 | "Hola____, tienes ____ años y el año que viene tendrás ____ años. 4 | Realiza el ejercicio con prompt (mensaje) y haz uso de los template strings" 5 | */ 6 | 7 | let nombre, edad; 8 | 9 | nombre = prompt('Ingrese un nombre: '); 10 | edad = prompt('Ingrese su edad: '); 11 | 12 | console.log(`"Hola ${nombre}, tienes ${edad} años y el año que viene tendrás ${(parseInt(edad)+1)} años."`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej50.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 50 3 | Crear un documento con el nombre ej50.js 4 | Declarar la variable numero y asignar el valor 10 5 | Si la variable numero es par Entonces mostrar en consola el mensaje: El número es par 6 | Probar cambiar el valor de la variable numero por un número impar y volver a ejecutar 7 | */ 8 | 9 | let numero = 10; 10 | 11 | if (numero %2==0){ 12 | console.log('El número es par'); 13 | } 14 | else{ 15 | console.log('El número es impar'); 16 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej110.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 110 3 | Crear un documento con el nombre ej110.js 4 | Crear la función promedio que acepta 5 notas (numbers) 5 | Mostrar en consola el promedio de la cursada 6 | */ 7 | 8 | const promedio = (nota1, nota2, nota3, nota4, nota5) =>{ 9 | 10 | let prom; 11 | 12 | prom = (nota1 + nota2 + nota3 + nota4 + nota5)/5; 13 | 14 | return prom; 15 | } 16 | 17 | console.log(`El promedio de las 5 notas es: ${parseFloat(promedio(6, 7, 6, 6.50, 9))}`); -------------------------------------------------------------------------------- /NodeJs/Ejercicio13/ej13.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 13 3 | Crear un archivo con el nombre ej13.js 4 | Levantar un servidor de Express 5 | Crear un módulo para manejar las rutas de nuestra home (get y post) 6 | Crear un módulo para manejar las rutas de nuestros productos (get, post, delete, put) 7 | Cada ruta sólo tiene que enviar un mensaje diciendo que página es y 8 | que método utiliza 9 | res.send('Pagina: home, método: post') 10 | Montar las rutas de home en '/' 11 | Montar las rutas de prodcutos en '/productos' 12 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej3.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 3 3 | Crear un documento con el nombre ej3.js 4 | Declarar las siguientes variables en una misma línea: 5 | nombre 6 | apellido 7 | edad 8 | fecha de nacimiento 9 | direccion 10 | Asignar un valor a cada variable con tus datos personales: 11 | Tu nombre 12 | Tu apellido 13 | Tu edad 14 | Tu fecha de nacimiento 15 | Tu direccion 16 | */ 17 | 18 | var nombre='Ezequiel', apellido='Romero', fechaNac='25/02/1994', 19 | direccion='calle false 1234'; 20 | 21 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej47.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 47 3 | Crear un documento con el nombre ej47.js 4 | 5 | Declarar la variable alumnos y asignar el siguiente texto: 6 | Matías, Germán, Nicolás, Silvia, Estefi, Patricia, Ramóm 7 | Asignar a la variable alumnos el resultado de ejecutar el método split sobre la variable alumnos 8 | Mostrar por consola el contenido de la variable alumnos 9 | */ 10 | 11 | let alumnos = 'Matias, German, Nicolas, Silvia, Estefi, Patricia, Ramón'; 12 | 13 | console.log(alumnos.split()); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej12.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 12 3 | Crear un documento con el nombre ej12.js 4 | 5 | Declarar una variable nombre con tu nombre. Declarar una variable saludo con 6 | el siguiente mensaje: 7 | 8 | Bienvenido/a. Mostrar en consola el mensaje de bienvenida 9 | utilizando console.log() y concatenando las variables nombre y 10 | saludo para que muestre un mensaje similar a: Bienvenido/a Marta 11 | */ 12 | 13 | let nombre='Marta', saludo='Bienvenido/a'; 14 | 15 | console.log(`${saludo} ${nombre}`); -------------------------------------------------------------------------------- /MongoDB/CRUD/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "crud", 3 | "version": "1.0.0", 4 | "description": "CRUD de express y mongodb", 5 | "main": "index.js", 6 | "scripts": { 7 | "dev":"nodemon src/servidor.js" 8 | }, 9 | "author": "Ezequiel Romero", 10 | "license": "ISC", 11 | "dependencies": { 12 | "body-parser": "^1.19.0", 13 | "ejs": "^3.0.1", 14 | "express": "^4.17.1", 15 | "mongoose": "^5.9.2", 16 | "morgan": "^1.9.1" 17 | }, 18 | "devDependencies": { 19 | "nodemon": "^2.0.2" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio9/ej9.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ejercicio 9 3 | 4 | Crear un archivo con el nombre ej9.js 5 | Levantar un servidor utilizando Express, el servidor tiene que responder con 6 | el siguiente texto: 'Bienvenidos a Node.js Server Side' 7 | 8 | Al levantar el servidor tiene que mostrar un mensaje que diga: 9 | `Servidor corriendo en el puerto ${puerto}`. En caso de haber un error al levantar 10 | el servidor tiene que mostrar el siguiente mensaje: 11 | 12 | `No se pudo levantar el servidor en el puerto ${puerto}` 13 | 14 | */ 15 | 16 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej56.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 56 3 | Crear un documento con el nombre ej56.js 4 | Copiar el código del ej53.md 5 | Refactorizar el código y utilizar operador ternario en lugar de if/else 6 | */ 7 | let numero = 10; 8 | /* 9 | if (numero %2==0){ 10 | console.log('El número es par'); 11 | } 12 | else{ 13 | console.log('El número no es impar'); 14 | } 15 | */ 16 | //Condicionales TERNARIO 17 | 18 | (numero % 2 == 0) ? console.log('El número es par') : console.log('El número no es impar'); 19 | 20 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio7/ej7.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 7 3 | Crear una carpeta con el nombre ej7 4 | Crear un archivo con el nombre index.js 5 | Crear un archivo con el nombre saludador.js 6 | Requerir el módulo saludador 7 | Utilizar la función saludar exportada 8 | Pasarle los 3 parámetros desde este archivo (nombre, apellido y callback) 9 | saludador.js 10 | Copiar y pegar la función saludar del ejercicio anterior (ej6) en el archivo 11 | saludador.js 12 | Exportar la función saludar 13 | 14 | Correr el proyecto con npm start (index.js) 15 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej53.js: -------------------------------------------------------------------------------- 1 | /*** 2 | * Ejercicio 53 3 | Crear un documento con el nombre ej53.js 4 | Copiar el código del ej50.md 5 | Modificar el código para que cumpla con el nuevo requisito 6 | Si la variable numero es par Entonces 7 | Mostrar en consola el mensaje: El número es par 8 | SI NO : 9 | Mostrar en consola el mensaje: El número no es par 10 | */ 11 | 12 | let numero = 10; 13 | 14 | if (numero %2==0){ 15 | console.log('El número es par'); 16 | } 17 | else{ 18 | console.log('El número no es impar'); 19 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej102.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 102 3 | Crear un documento con el nombre ej102.js 4 | Declarar una variable mostrarNombre y asignar una función 5 | La función mostrarNombre tiene que mostrar tu nombre en consola 6 | con el siguiente formato: 7 | =========== 8 | = Nicolás = 9 | =========== 10 | Ejecutar esta función 2 veces 11 | */ 12 | 13 | const mostrarNombre = (nombre) =>{ 14 | console.log(`============\n 15 | = ${nombre} =\n 16 | ============`) 17 | 18 | }; 19 | 20 | mostrarNombre('Ezequiel'); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio3.js: -------------------------------------------------------------------------------- 1 | /** 2 | Solicita un número e imprime todos los números pares e impares 3 | desde 1 hasta ese número con el mensaje "es par" o "es impar" 4 | si el número es 5 el resultado será: 5 | 6 | 1- Es impar 7 | 2- Es par 8 | 3- Es impar 9 | 4- Es par 10 | 5- Es impar 11 | */ 12 | 13 | var numero = 5; 14 | 15 | for(var i=0; i < numero ; i++){ 16 | 17 | if(i % 2 == 0){ 18 | console.log((i+1) +' Es par'); 19 | }else{ 20 | console.log((i+1)+ ' Es impar'); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej40.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 40 3 | Crear un documento con el nombre ej40.js 4 | Declarar la variable texto con el siguiente valor: Usando el método 5 | Declarar la variable metodo con el siguiente valor: concat 6 | Mostrar en consola el siguiente texto utilizando el método de string concat: Usando el método concat 7 | */ 8 | 9 | let texto = 'Usando el metodo ', metodo = 'concat'; 10 | 11 | // Concatenamos los strings usando el método concat 12 | let mensaje = texto.concat(metodo); 13 | 14 | console.log(mensaje); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej123.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 123 3 | Crear un documento con el nombre ej123.js 4 | Declarar una lista de alumnos con varios de los nombres de tus compañeros 5 | Mostrar en consola el nombre del 2do y 6to alumno en mayúscula 6 | Mostrar en consola la cantidad de alumnos 7 | */ 8 | 9 | let alumnos = ['Ezequiel','Gabriela','Josema','Luis','Marta', 10 | 'Noemi','Damian','Ivanna','Roberto','Angela','Silvia','Emilia','Nestor']; 11 | 12 | console.log(alumnos[1].toUpperCase ``) 13 | console.log(alumnos[5].toUpperCase ``) -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/views/login.handlebars: -------------------------------------------------------------------------------- 1 | {{#if mensaje}} 2 |

{{mensaje}}

3 | {{/if}} 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | Registrarse 15 |
16 | -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sesiones-mongo-hbs", 3 | "version": "1.0.0", 4 | "description": "Node web server", 5 | "main": "server.js", 6 | "dependencies": { 7 | "body-parser": "^1.18.3", 8 | "express": "^4.16.4", 9 | "express-handlebars": "^3.1.0", 10 | "express-session": "^1.16.1", 11 | "mongodb": "^3.3.2" 12 | }, 13 | "scripts": { 14 | "test": "echo \"Error: no test specified\" && exit 1", 15 | "start": "node server.js" 16 | }, 17 | "author": "", 18 | "license": "ISC" 19 | } 20 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej28.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 28 3 | Crear un documento con el nombre ej28.js 4 | Declarar la variable numero y asignar el valor 9 5 | Mostrar en consola la tabla del 9 de 1 a 10 usando la variable numero 6 | */ 7 | 8 | let numero = 9; 9 | 10 | console.log(`9 x 0 = ${numero*0} 11 | 9 x 1 = ${numero*1} 12 | 9 x 2 = ${numero*2} 13 | 9 x 3 = ${numero*3} 14 | 9 x 4 = ${numero*4} 15 | 9 x 5 = ${numero*5} 16 | 9 x 6 = ${numero*6} 17 | 9 x 7 = ${numero*7} 18 | 9 x 8 = ${numero*8} 19 | 9 x 9 = ${numero*9} 20 | 9 x 10 = ${numero*10}`) -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej120.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 120 3 | Crear un documento con el nombre ej120.js 4 | Declarar un array vacio con el nombre alumnos 5 | Asignar el nombre de un alumno en los ínidices: 0, 1, 2, 3, 4 y 5 6 | Mostrar en consola cada uno de los elementos utilizando los índices dados 7 | Ejemplo de formato de salida: índice 0: Marta 8 | */ 9 | 10 | let alumnos = ['Marta','Jose','Damian','Gabriela','Ezequiel', 'Noemi']; 11 | 12 | console.log(`${alumnos[0]}\n${alumnos[1]}\n${alumnos[2]}\n${alumnos[3]}\n${alumnos[4]}\n${alumnos[5]}`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio6.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Escribe un programa que permita ir introduciendo una serie indeterminada de 3 | * números mientras su suma no supere 50. Cuando esto ocurra, se debe mostrar 4 | * el total acumulado y el contador de cuantos números 5 | * se han introducido 6 | */ 7 | 8 | let suma=0, contador; 9 | 10 | while(suma <= 50){ 11 | suma += parseInt(prompt('Ingrese un numero para añadir a la suma')); 12 | contador++; 13 | } 14 | document.write('La suma total es: '+ suma); 15 | document.write('El total de numeros es '+ contador); 16 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej72.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 72 3 | Crear un documento con el nombre ej72.js 4 | Mostrar en consola el siguiente dibujo utilizando la estructura while 5 | * 6 | ** 7 | *** 8 | **** 9 | ***** 10 | ****** 11 | ******* 12 | ******** 13 | ********* 14 | ********** 15 | *********** 16 | ************ 17 | ************* 18 | */ 19 | 20 | 21 | let cadena = "*", piramide = "", contador = 0, base = 13; 22 | 23 | //con while 24 | while(contador < base ){ 25 | piramide += cadena; 26 | console.log(piramide+ "\n"); 27 | contador++; 28 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/index.js: -------------------------------------------------------------------------------- 1 | //Requiero el modulo de express para realizar el servidor 2 | const express = require('express'); 3 | const app = express(); 4 | //Creo una variable constante y le asigno el valor del puerto del servidor 5 | const port = 5000; 6 | //Aca configuro el middleware para servir los archivos estaticos al servidor 7 | app.use(express.static(__dirname + '/public')); 8 | //Le indico a mi servidor que escuche en un puerto y que ejecute un mensaje 9 | //cuando es levantado 10 | app.listen(port, ()=>{ 11 | console.log('El servidor esta corriendo en el puerto ' + port) 12 | }); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej13.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ejercicio 13 3 | Crear un documento con el nombre ej13.js 4 | Declarar una variable nombre con tu nombre 5 | Declarar una variable saludo con el siguiente mensaje: 6 | Bienvenido/a. Mostrar en consola el siguiente mensaje: 7 | Bienvenido/a Marta al curso de ECMAScript!! 8 | 9 | Utilizar console.log(), las variable nombre, saludo y un valor string para el resto 10 | del mensaje que no está en una variable 11 | 12 | */ 13 | 14 | let nombre='Marta', saludo='Bienvenido/a'; 15 | 16 | console.log(`${saludo} ${nombre} al curso de ECMAScript!!`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio10.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dado un array que contiene ["Azul","Amarillo","Rojo","Verde","Rosa"]. 3 | * Determinar si un color introducido por el usuario a través de un prompt 4 | * se encuentra dentro del array o no. 5 | */ 6 | 7 | 8 | let arreglo = ["azul","amarillo","rojo","verde","rosa"]; 9 | 10 | let color; 11 | 12 | color = prompt('Introducir un color: '); 13 | 14 | for(var i=0; i < arreglo.length ;i++){ 15 | 16 | if(color == arreglo[i]){ 17 | console.log('El color ingresado por el usuario se encuentra en el arreglo'); 18 | } 19 | 20 | } -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej20.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 20 3 | Crear un documento con el nombre ej20.js 4 | Declarar la variable dia con el siguiente valor: el número del día de hoy 5 | 6 | Declarar la variable mes con el siguiente valor: 7 | el número del mes de hoy (ejemplo: 1 para Enero,2 para Febrero) 8 | 9 | Declarar la variable anio con el siguiente valor: año actual con 4 números 10 | (ejemplo: 2010). 11 | 12 | Mostrar en consola el siguiente mensaje: dia/mes/anio 13 | */ 14 | 15 | let dia = 19, 16 | mes = 11, 17 | anio = 2019; 18 | 19 | console.log(`${dia}/${mes}/${anio}`); -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Documentos Estáticos en NodeJs y Express 8 | 9 | 10 | 11 | 12 | 13 |

Juan Roman Riquelme el mejor enganche del mundo

14 | Vamosooooossssssss 15 | 16 | 17 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio12/ej12.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 12 3 | Crear un archivo con el nombre ej12.js 4 | Levantar un servidor de Express 5 | Al llamar a localhost:3000/api/products se debe mostrar el siguiente JSON: 6 | { 7 | descripcion: 'Productos', 8 | items: [ 9 | { nombre: 'taza de Star Wars' , precio: 300}, 10 | { nombre: 'FIFA 22 PS4' , precio: 1000}, 11 | { nombre: 'Remera superheore' , precio: 100}, 12 | { nombre: 'Bincha de Piñon fijo' , precio: 200}, 13 | { nombre: 'Grande de Muzza' , precio: 120}, 14 | { nombre: 'Botella de Fernet por 1 litro' , precio: 220} 15 | ] 16 | } 17 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej36.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 36 3 | Crear un documento con el nombre ej36.js 4 | Declarar las siguientes variables numero1 y numero2 5 | Asignar a numero1 el valor 10 6 | Asignar a numero2 el valor 20 7 | Mostrar en consola los siguientes mensajes: 8 | La variable numero1 y numero2 tienen el mismo valor: true/false 9 | La variables numero1 y numero2 son distintas: true/false 10 | */ 11 | 12 | 13 | let numero1=10, numero2=20; 14 | 15 | if(numero1 == numero2){ 16 | console.log('Los valores son iguales'); 17 | }else{ 18 | console.log('Los valores son distintos'); 19 | } 20 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio8/ej8.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 8 3 | Crear un archivo con el nombre ej8.js 4 | Levantar un servidor HTTP en el puero 3001, ejecutar un request a localhost:3001. 5 | El servidor tiene que responder con el siguiente texto: 6 | 7 | 'Bienvenidos a Node.js Server Side'. Al levantar el servidor tiene que mostrar 8 | un mensaje que diga: `Servidor corriendo en el puerto ${puerto}`. En caso de haber un 9 | error al levantar el servidor tiene que mostrar el siguiente mensaje: 10 | 11 | `No se pudo levantar el servidor en el puerto ${puerto}` 12 | (AYUDIN) podes copiar el código de la guía y modificarlo 13 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio5.js: -------------------------------------------------------------------------------- 1 | /** 2 | Escriba un programa que pida un número entero mayor que cero y calcule su factorial. 3 | El factorial es el resultado de multiplicar ese número por sus anteriores hasta 4 | la unidad. 5 | 6 | 5! = 5*4*3*2*1 = 120 7 | 8 | */ 9 | 10 | let numero; 11 | 12 | numero = prompt('Ingrese un numero: '); 13 | 14 | const factorial = (numero) =>{ 15 | if (numero === 0 || numero === 1){ 16 | return 1; 17 | } 18 | for(var i=numero-1; i >= 1; i--){ 19 | numero = numero * i; 20 | } 21 | return numero 22 | } 23 | document.write(factorial(5)); 24 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej14.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 14 3 | Crear un documento con el nombre ej14.js 4 | Declarar una variable nombre con tu nombre 5 | Declarar una variable saludo con el siguiente valro: Bienvenido/a 6 | Declarar una variable finDeSaludo con el siguiente valor: al curso de ECMAScript!! 7 | Mostrar en consola el siguiente mensaje: Bienvenido/a Marta al curso de ECMAScript!! 8 | utilizando console.log() y concatenando las 3 variables 9 | */ 10 | 11 | let nombre = 'Marta', saludo = 'Bienvenido/a', finDeSaludo = 'al curso de ECMAScript!!'; 12 | 13 | console.log(`${saludo} ${nombre} ${finDeSaludo}`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej32.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 32 3 | Crear un documento con el nombre ej32.js 4 | Declarar la variable altura y asignar el valor 10 5 | Declarar la variable base y asignar el valor 4 6 | Mostrar en consola el cálculo del perímetro (suma de los lados) y el área (base por altura). 7 | */ 8 | 9 | 10 | let altura=10, base=4, perímetro, area; 11 | 12 | //Area = base * altura de un cuadrado 13 | //A = base * altura 14 | area = base * altura; 15 | 16 | //Perimetro p= 2*(base * area) 17 | //p = 2*area + 2 * base 18 | 19 | perímetro = (2 * area) + (2 * base); 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/views/registro.handlebars: -------------------------------------------------------------------------------- 1 | {{#if mensaje}} 2 |

{{mensaje}}

3 | {{/if}} 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
-------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej51.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 51 3 | Crear un documento con el nombre ej51.js 4 | Declarar la variable usuario y asignar el valor 'pepe2017' 5 | Declarar la variable password y asignar el valor '12345' 6 | Si el nombre del usuario es igual a 'pepe2017' 7 | Y el password es igual a '12345' entonces mostrar en consola el 8 | siguiente mensaje: El usuario está autenticado y puede ver el contenido del sitio 9 | */ 10 | 11 | let usuario = 'pepe2017', password = '12345'; 12 | 13 | if(usuario == 'pepe2017'){ 14 | console.log('El usuario está autenticado y puede ver el contenido del sitio'); 15 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej118.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 118 3 | Crear un documento con el nombre ej118.js 4 | Crear un array con el nombre notas y asignar 10 valores numéricos de 1 a 10 5 | Sumar los valores del primer, cuarta, quinta y última entrega 6 | Cada nota del array notas corresponde a una entrega de los alumnos 7 | */ 8 | 9 | let notas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10 | primero, cuarto, quinto, ultimo, suma; 11 | 12 | primero = notas[0]; 13 | cuarto = notas[4]; 14 | quinto = notas[5]; 15 | ultimo = notas[9]; 16 | 17 | suma = primero + cuarto + quinto + ultimo; 18 | 19 | console.log('La suma es: '+ suma); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej119.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 119 3 | Crear un documento con el nombre ej119.js 4 | Crear el siguiente array con el nombre datos: [42, true, 5 | function() {return 'El significado de la vida es: '}] 6 | Si el segundo item en el array datos es verdadero entonces 7 | Mostrar en consola: El significado de la vida es: 42 8 | Utilizar el primer y último item del array datos para formar el string 9 | del mensaje pedido 10 | */ 11 | 12 | let datos = [42, true, function() {return 'El significado de la vida es: '}]; 13 | 14 | if (datos[1] == true){ 15 | 16 | console.log(datos[2] `` + datos[0]) 17 | } -------------------------------------------------------------------------------- /MongoDB/Ejercicio1/Eje1.js: -------------------------------------------------------------------------------- 1 | /* Ejercicio 1 2 | Levantar el servidor de MongoDB. Conectarse al cliente de MongoDB. Crear una 3 | base de datos con el nombre catalogo. Crear la colección productos 4 | Crear los siguientes documentos de a uno: 5 | 6 | {"name": "MacBook Pro"} 7 | {"name": "MacBook Air"} 8 | {"name": "MacBook"}) 9 | 10 | Listar las bases de datos disponibles. Listar las colecciones disponibles 11 | para la base de datos catalogo. Desconectar el cliente de MongoDB 12 | Volver a levantar el cliente de MongoDB pero en esta oportunidad queremos que 13 | se conecte directamente a la base de catalogo sin pasar por la base de test*/ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej19.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 19 3 | Crear un documento con el nombre ej19.js 4 | Declarar una variable primerTexto con el valor: este texto tiene "comillas dobles" 5 | Declarar una variable segundoTexto con el valor: este texto tiene 'comillas simples' 6 | Mostrar en consola el valor de la variable primerTexto 7 | Mostrar en consola el valor de la variable segundoTexto 8 | */ 9 | 10 | let primerTexto = 'este texto tiene "comillas dobles"', 11 | segundoTexto = "este texto tiene 'comillas simples'"; 12 | 13 | console.log(primerTexto); 14 | console.log("***********"); 15 | console.log(segundoTexto); 16 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio9.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Solicitar al usuario una palabra y mostrar por consola el número de 3 | * consonantes, vocales y longitud de la palabra 4 | */ 5 | 6 | const palabra; 7 | let vocales=0, consonantes=0; 8 | 9 | palabra = prompt('Ingrese una palabra: ').toLocaleLowerCase(); 10 | 11 | for(const letra of palabra){ 12 | if(letra == 'a' || letra == 'e' || letra == 'i' || letra == 'o' || letra == 'u'){ 13 | vocales++ 14 | }else{ 15 | consonantes++ 16 | } 17 | } 18 | 19 | console.log('Tu palabra tiene '+ vocales ' vocales '+ ' y tiene '+ consonantes + ' consonantes'); 20 | 21 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej2.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 2 3 | Crear un documento con el nombre ej2.js 4 | Declarar las siguientes variables de forma individual: 5 | nombre 6 | apellido 7 | edad 8 | fecha de nacimiento 9 | direccion 10 | Asignar un valor a cada variable con tus datos personales: 11 | Tu nombre 12 | Tu apellido 13 | Tu edad 14 | Tu fecha de nacimiento 15 | Tu direccion 16 | */ 17 | 18 | //Declaracion de variables; 19 | var nombre; 20 | var apellido; 21 | var edad; 22 | var fechaNac; 23 | 24 | //Asigacion a la variable 25 | nombre = 'Ezequiel'; 26 | apellido = 'Romero'; 27 | edad = 25; 28 | fechaNac = '25/02/1994'; 29 | 30 | -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/views/layout/main.handlebars: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejemplo sesiones 8 | 9 | 10 | 11 | 12 | {{#if nombre}} 13 | 16 | {{/if}} 17 | {{{body}}} 18 | 19 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej114.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 114 3 | Crear un documento con el nombre ej114.js 4 | Crear una función con el nombre invertir que acepta un texto como parámetro 5 | Mostrar en consola el texto invertido 6 | Casos de uso: 7 | Si se ejecuta la función con el valor hola se espera que la función retorne aloh 8 | */ 9 | 10 | const invertir = (cadena) => { 11 | 12 | var x = cadena.length; 13 | var cadenaInvertida = ""; 14 | 15 | while (x >= 0) { 16 | cadenaInvertida = cadenaInvertida + cadena.charAt(x); 17 | x--; 18 | } 19 | return cadenaInvertida; 20 | } 21 | 22 | console.log(invertir('Hola')); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej37.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 37 3 | Crear un documento con el nombre ej37.js 4 | Declarar las variables promedioParaAprobar y promedioDelAlumno 5 | Asignar a promedioParaAprobar el valor 6 6 | Asignar a promedioDelAlumno el valor 4 7 | Mostrar en consola los siguientes mensajes: 8 | El alumno tiene un promedio mayor o igual que el requerido: true/false 9 | Al alumno le faltaron ${puntos} para aprobar 10 | */ 11 | 12 | let promedioParaAprobar=6, promedioDelAlumno=4; 13 | 14 | if(promedioDelAlumno > 6){ 15 | console.log(`El alumno aprobo la materia`); 16 | } 17 | else{ 18 | console.log(`Al alumno le faltaron ${6-4} para aprobar`); 19 | } 20 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio15/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const port = 3030; 3 | const app = express(); 4 | 5 | //Crear la siguiente ruta, url: '/', metodo: get 6 | app.get('/', (req, res)=>{ 7 | res.json({ 8 | status: 200, 9 | message: 'Este request/response está OK' 10 | }) 11 | }); 12 | //Crear el siguiente middleware 13 | var requestTime = function (req, res, next) { 14 | const mensaje = `Request a ${req.baseUrl} ${Date.now()}` 15 | console.log(mensaje) 16 | next(); 17 | }; 18 | //Configurar el middleware 19 | app.use(requestTime); 20 | 21 | app.listen(port, ()=>{ 22 | console.log(`El servidor esta corriendo en http://localhost:${port}`); 23 | }); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej64.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 64 3 | Crear un documento con el nombre ej64.js 4 | Declarar una variable nombre y asignar el valor null 5 | Si nombre Entonces 6 | Mostrar un mensaje en la consola: El nombre del usuario es ${nombre} 7 | SINO 8 | Mostrar un mensaje de error en la consola: Por favor ingrese un nombre 9 | Cambiar el valor de la variable nombre con tu nombre y volver a ejecutar 10 | el programa a ver que pasa 11 | */ 12 | 13 | let nombre; 14 | nombre = prompt('Ingrese un nombre: '); 15 | 16 | if (nombre != 'null'){ 17 | document.write(`El nombre del usuario es ${nombre}`); 18 | }else{ 19 | document.write('Por favor ingrese un nombre'); 20 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej125.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 125 3 | Crear un documento con el nombre ej125.js 4 | Crear una lista de gustos de helados 5 | Asignar 10 gustos que te gusten 6 | No se puede utilizar índices numéricos 7 | Los elementos tienen que estar en el orden que fueron ingresados, 8 | primero el primero, segundo el segundo y así sigue 9 | Mostrar en consola la lista de gustos de helados 10 | */ 11 | 12 | let helados = ['crema del cielo', 'granizado', 'chocolate', 'dulce de leche', 13 | 'frutillas','banana split', 'almendrado','amarena','crema con frutillas', 14 | 'chocolate nevado']; 15 | 16 | for(let i=0; i < helados.length; i++){ 17 | console.log(helados[i]); 18 | } 19 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio6/ej6.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 6 3 | Crear un archivo con el nombre ej6.js 4 | Crear una arrow function con el nombre saludar 5 | Esta función acepta 3 parámetros. El primer parámetro es el nombre de la 6 | persona que queremos saludar. El segundo parámetro es el apellido de la persona 7 | que queremos saludar. Esta función muestra en pantalla el siguiente mensaje: 8 | 9 | `Hola ${nombre}` ${apellido}` 10 | 11 | El tercer parámetro es un callback que se va a ejecutar luego de saludar al usuario 12 | Esta función tiene que mostrar en pantalla el siguiente texto: 13 | 14 | 'Luego de saludar se ejecuta el callback' 15 | 16 | Al correr el script deberíamos ver en pantalla el saludo 17 | */ 18 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio4/ej4.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 4 3 | Crear una carpeta con el nombre ej4 4 | Inicializar un proyecto de Node.js utilizando NPM dentro de la carpeta ej4 5 | El nombre del proyecto tiene que ser Ejercicio 4 6 | Crear un archivo index.js 7 | Leer la documentación del módulo para aprender a usarlo 8 | Instalar el módulo one-liner-joke 9 | Configurar el proyecto para que al correr npm start corra el código del archivo 10 | index.js. Mostrar en consola un chiste random. Mostrar en consola las categoría 11 | a las que pertenece. Nota de color: 12 | 13 | el método getRandomJoke retorna un objeto que tiene una propiedad body con el chiste 14 | y la propiedad tags con las categorías 15 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej45.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 45 3 | Crear un documento con el nombre ej45.js 4 | Declarar la variable mensaje y establecer el siguiente valor: 'Juan Roman Riquelme es el mejor del mundo' 5 | Declarar la variable jugador 6 | 7 | Utilizar el método slice para obtener el nombre Juan Roman Riquelme del texto en la variable mensaje y 8 | asignarlo a la variable jugador 9 | Mostrar en consola el siguiente mensaje utilizando interpolación de textos: ${jugador} 10 | es el mejor 10 de la historia!! 11 | */ 12 | 13 | let mensaje = 'Juan Roman Riquelme es el mejor del mundo', jugador; 14 | 15 | jugador = mensaje.slice(0, 41); 16 | 17 | console.log(`${jugador} es el mejor 10 de la historia!!`) -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio4.js: -------------------------------------------------------------------------------- 1 | /** 2 | Escribe un programa que pida un número entero mayor que 1 y 3 | que escriba si el número primo o no. Un número primo es aquel que 4 | solo es divisible por si mismo y la unidad 5 | */ 6 | 7 | let cont = 2, cont2 = 0, primo = 0, numero; 8 | 9 | numero = prompt('Ingrese un numero: '); 10 | 11 | while (cont <= numero) { 12 | while (cont2 < cont) { 13 | if (cont % cont2 == 0 && cont2 != 1 && cont2 != cont) { 14 | primo = 1; 15 | } 16 | cont2++; 17 | } 18 | 19 | if (primo == 0) { 20 | document.write(cont2 + '
' ); 21 | } else { 22 | primo = 0; 23 | } 24 | cont++; 25 | cont2 = 0; 26 | } -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej5.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 5 3 | Crear un documento con el nombre ej5.js 4 | Declarar las siguientes variables de forma individual y asignarle a cada una un 5 | valor para describirte: 6 | 7 | - nombre 8 | - apellido 9 | - edad 10 | - fecha de nacimiento 11 | - direccion 12 | 13 | Mostrar en consola el valor de cada una de las variables utilizando console.log() 14 | */ 15 | 16 | var nombre = 'Ezequiel'; 17 | var apellido = 'Romero'; 18 | var edad = 25; 19 | var fechaNac = '25/02/1994'; 20 | var direccion = 'Calle false 1234'; 21 | 22 | //Utilizando template string 23 | console.log(`El nombre es :${nombre}, ${apellido} tiene ${edad} años, nació el ${fechaNac} y vive en ${direccion}`); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej115.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 115 3 | Crear un documento con el nombre ej115.js 4 | Crear una función con el nombre elMasGrande que acepte un nombre como parámetro 5 | Si el parámetro es Roman entonces: 6 | Mostrar el siguiente mensaje en mayúscula: El mejor de la historia es Román 7 | Sino 8 | Mostrar el siguiente mensaje en minuscula: Por favor ingrese el nombre de 9 | un gran jugador 10 | */ 11 | 12 | const elMasGrande = (nombre) =>{ 13 | 14 | if(nombre.toUpperCase() == 'ROMAN'){ 15 | console.log('El mejor jugador de la historia'); 16 | } 17 | else{ 18 | console.log('Por favor ingrese el nombre de un gran jugador'); 19 | } 20 | } 21 | 22 | elMasGrande('Palermo'); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej55.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 55 3 | Crear un documento con el nombre ej55.js 4 | Copiar el código del ej52.md 5 | Refactorizar el código y utilizar operador ternario en lugar de if/else 6 | */ 7 | /* 8 | let numero1=10, numero2=55; 9 | 10 | if (numero1 > numero2){ 11 | console.log('La variable numero1 es más grande que la variable numero2'); 12 | } 13 | else{ 14 | console.log('La variable numero1 no es más grande que la variable numero2'); 15 | } 16 | */ 17 | let numero1=10, numero2=55; 18 | //Utilizando condicionales TERNARIOS 19 | (numero1 > numero2) ? console.log('La variable numero1 es más grande que la variable numero2') : console.log('La variable numero1 no es más grande que la variable numero2'); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej58.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 58 3 | Crear un documento con el nombre ej58.js 4 | Declarar la variable hora 5 | Establecer un valor entre 0 y 24 6 | Si la hora es menor que 12 y mayor que 5 entonces 7 | Mostrar el mensaje: Buen día 8 | Si la hora es menor o igual que 12 y mayora que 20 entonces 9 | Mostrar el mensaje: Buenas tardes 10 | Si No: 11 | Mostrar el mensaje: Buenas noches 12 | Cambiar el valor de la variable hora un par de veces y ejecutarlo para ver que pasa 13 | */ 14 | 15 | let hora = 17; 16 | 17 | if(hora < 12 && hora > 5){ 18 | console.log('Buen dia'); 19 | 20 | }else if(hora <= 12 && hora > 20){ 21 | console.log('Buenas tardes'); 22 | 23 | }else{ 24 | console.log('Buenas noches'); 25 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej65.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 65 3 | Crear un documento con el nombre ej65.js 4 | Declarar una variable saldo y asignar el valor 0 5 | Si saldo y saldo mayor que 0 Entonces 6 | Mostrar un mensaje en la consola: El usuario tiene ${saldo} pesos a favor 7 | SINO 8 | Mostrar un mensaje de error en la consola: El usuario no tiene saldo a favor 9 | Cambiar el valor de la variable saldo con un número mayor a 0 y volver 10 | a ejecutar el programa a ver que pasa 11 | */ 12 | 13 | let saldo = 0; 14 | saldo = parseInt(prompt('Ingrese su saldo')); 15 | 16 | (saldo != -1 && saldo != 0) ? 17 | document.write(`El usuario tiene ${saldo} pesos a favor`) 18 | : 19 | document.write(`El usuario no tiene saldo a favor`) 20 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej52.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 52 3 | Crear un documento con el nombre ej52.js 4 | Copiar el código del ej49.md 5 | Modificar el código para que cumpla con el nuevo requisito 6 | Si la variable numero1 es más grande que la variable numero2 entonces 7 | Mostrar el siguiente mensaje en consola: La variable numero1 es más grande que la variable numero2 8 | SI NO : 9 | Mostrar el siguiente mensaje: La variable numero1 no es más grande que la variable numero2 10 | */ 11 | 12 | let numero1=10, numero2=55; 13 | 14 | if (numero1 > numero2){ 15 | console.log('La variable numero1 es más grande que la variable numero2'); 16 | } 17 | else{ 18 | console.log('La variable numero1 no es más grande que la variable numero2'); 19 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio15/ej15.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 15 3 | Crear un archivo con el nombre ej15.js 4 | Levantar un servidor de Express 5 | Crear la siguiente ruta, url: '/', metodo: get 6 | Esta ruta tiene que retornar el siguiente objeto en formato JSON: 7 | { 8 | status: 200, 9 | message: 'Este request/response está OK' 10 | } 11 | Crear el siguiente middleware 12 | var requestTime = function (req, res, next) { 13 | const mensaje = `Request a ${req.baseUrl} ${Date.now()}` 14 | console.log(mensaje) 15 | next(); 16 | }; 17 | Configurar el middleware 18 | app.use(requestTime) 19 | Si todo esta bien en la consola del server donde levantaste express deberías 20 | ver un mensaje similar al siguiente: 21 | Request realizado 1506002876731 22 | */ -------------------------------------------------------------------------------- /NodeJs/Ejercicio12/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const port = 3000; 3 | const app = express(); 4 | 5 | app.get('/api/products', (req, res) => { 6 | res.json({ 7 | descripcion: 'Productos', 8 | items: [ 9 | { nombre: 'taza de Star Wars', precio: 300 }, 10 | { nombre: 'FIFA 22 PS4', precio: 1000 }, 11 | { nombre: 'Remera superheore', precio: 100 }, 12 | { nombre: 'Bincha de Piñon fijo', precio: 200 }, 13 | { nombre: 'Grande de Muzza', precio: 120 }, 14 | { nombre: 'Botella de Fernet por 1 litro', precio: 220 } 15 | ] 16 | }); 17 | }); 18 | 19 | app.listen(port, () => { 20 | console.log(`Servidor corriendo en http://localhost:${port}`); 21 | }); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej44.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 44 3 | Crear un documento con el nombre ej44.js 4 | Declarar la variable texto y asignar el siguiente valor: HOLA 5 | Declarar la variable resultado y asignar el valor de la variable texto 6 | invirtiendo cada uno de los caracteres y concatenandolos 7 | Mostrar en consola el contenido de la variable resultado en minúscula 8 | Deberías ver como resultado la palabra aloh 9 | */ 10 | 11 | let texto = 'HOLA', resultado = texto; 12 | 13 | //Utilizo el metodo split('') para separar en caracter las letras en un arreglo 14 | //Luego utilizo el metodo reverse() para invertir las letras y utilizo el metodo 15 | //join() para juntar el arreglo en un string 16 | console.log(resultado.split('').reverse().join('')); 17 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio14/ej14.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 14 3 | Crear un archivo con el nombre ej14.js 4 | Levantar un servidor de Express 5 | Crear la siguiente ruta, url: '/', metodo: get 6 | Esta ruta tiene que retornar un mensaje que dice: 'Este request/response está OK', 7 | usar el método send para la respuesta 8 | Establecer el status en 200 9 | Crear la siguiente ruta, url: '/productos', metodo: get 10 | Esta ruta tiene que retornar un mensaje que dice: 'Ha ocurrido un error de servidor', 11 | usar el método send para la respuesta 12 | Establecer el status en 500 13 | Crear la siguiente ruta, url: '/contacto', metodo: get 14 | Esta ruta tiene que retornar un mensaje que dice: '404 No encontrado', usar el método 15 | send para la respuesta 16 | Establecer el status en 404 17 | */ -------------------------------------------------------------------------------- /NodeJs/Ejercicio3/ej3.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 3 3 | Crear una carpeta con el nombre ej3 4 | Inicializar un proyecto de Node.js utilizando NPM dentro de la carpeta ej3 5 | El nombre del proyecto tiene que ser Ejercicio 3 6 | Crear un archivo index.js 7 | Leer la documentación del módulo para aprender a usarlo 8 | Instalar el módulo logplease como solo dependencia de desarrollo de nuestro proyecto 9 | Configurar el proyecto para que al correr npm start corra el código del archivo 10 | index.js. Mostrar en consola: 11 | 12 | Hola Mundo de Node (usando el método debug) 13 | Información de último momento, Node.js es lo más!! (usando el método info) 14 | Tirando warnings como campeones (usando el método warn) 15 | Algo no está bien!!! (usando el método error) 16 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej57.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 57 3 | Crear un documento con el nombre ej57.js 4 | Copiar el código del ej54.md 5 | Refactorizar el código y utilizar operador ternario en lugar de if/else 6 | */ 7 | let usuario = 'pepe2017', password = '12345'; 8 | /* 9 | if(usuario == 'pepe2017'){ 10 | console.log('El usuario está autenticado y puede ver el contenido del sitio'); 11 | }else{ 12 | console.log('Error, no se pudo autenticar al usuario, puede intentarlo más tarde'); 13 | }*/ 14 | 15 | //Condicionales TERNARIOS 16 | (usuario == 'pepe2017') ? 17 | console.log('El usuario está autenticado y puede ver el contenido del sitio') 18 | : 19 | console.log('Error, no se pudo autenticar al usuario, puede intentarlo más tarde'); 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej124.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 124 3 | Crear un documento con el nombre ej124.js 4 | Crear una array con el nombre peliculas 5 | Asignar los nombres de películas que te gusten (al menos 10) 6 | Mostrar en consola el nombre de la primer y última película de la lista 7 | Para el último elemento no se puede usar un índice a mano sino que 8 | hay que hacerlo de forma dinámica como si no sabemos la cantidad 9 | exacta de elementos 10 | */ 11 | 12 | let peliculas = ['El dia despues de mañana','En busca de la felicidad', 13 | 'Troya','Hombre en llama','El niño que domo al viento','Rapido y Furioso', 14 | 'Harry Potter','Las guerras de las galaxias','King kong','Jumanji']; 15 | 16 | for(let i=0; i <= peliculas.length-1; i++){ 17 | console.log(peliculas[i]); 18 | } -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio8.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Dado un array de letras, solicita un número de DNI y calcula que letra 3 | * le corresponde. El número no puede ser negativo ni tener más de 8 digitos. 4 | * La posicion de la letra es el resultado del modulo del número 5 | * introducido entre 23. 6 | 7 | const letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y','F','P','D','X','B','N', 8 | 'J','Z','S,'Q','V','H','L','C','K','E','T']; 9 | 10 | */ 11 | 12 | const letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y','F','P','D','X','B','N', 'J','Z','S','Q','V','H','L','C','K','E','T']; 13 | 14 | const dni = prompt('Introduce tu DNI'); 15 | if(dni.length==8 && parseInt(dni)>0){ 16 | let letra = dni%23; 17 | console.log(`Tu DNI completo es ${dni}${letras[letra]}`); 18 | } 19 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej111.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 111 3 | Crear un documento con el nombre ej111.js 4 | Crear una función esPar que retorna un valor boolean 5 | Esta función debe validar si un número es par o no 6 | Ejecutar esta función con los siguientes números: 2, 5, 3, 24, 12 7 | En caso de que el número sea par mostrar un mensaje que diga: ${numero} es par 8 | Caso contrario mostrar en consola el siguiente mensaje: ${numero} no es par 9 | */ 10 | 11 | const esPar = () =>{ 12 | var num = [2, 5, 3, 24, 12]; 13 | for(var i=0; i <= num.length-1; i++){ 14 | if(num[i] % 2 == 0){ 15 | console.log(`${num[i]} es par`); 16 | }else{ 17 | console.log(`${num[i]} no es par`); 18 | } 19 | } 20 | } 21 | 22 | esPar(); 23 | 24 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej49.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 49 3 | Crear un documento con el nombre ej49.js 4 | Declarar 2 variables numero1 y numero2 5 | Asignar el valor 10 a la variable numero1 6 | Asignar el valor 5 a la variable numero2 7 | Si la variable numero1 es más grande que la variable numero2 entonces mostrar el 8 | siguiente mensaje en consola: La variable numero1 es más grande que la variable numero2 9 | Probar cambiar el valor de la variable numero2 para que sea más grande que numero1 10 | y volver a ejecutar el programar 11 | */ 12 | 13 | let numero1=10, numero2=55; 14 | 15 | if (numero1 > numero2){ 16 | console.log('La variable numero1 es más grande que la variable numero2'); 17 | } 18 | else{ 19 | console.log('La variable numero2 es más grande que la variable numero1'); 20 | } -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej46.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 46 3 | Crear un documento con el nombre ej46.js 4 | Declarar la variable usuarioYPassword y asignarle el siguiente texto: 'pepito2017,12345' 5 | Declarar la variable nombreDeUsuario y utilizar el método substr para obtener el nombre de usuario (pepito2017) 6 | Declarar la variable password y utilizar el método substr para obtener el password (12345) 7 | Mostrar en consola el siguiente mensaje: El usuario ${nombreDeUsuario} tiene ${password} como password 8 | */ 9 | 10 | let usuarioYPassword = 'pepito2017,12345', nombreDeUsuario, password; 11 | 12 | nombreDeUsuario = usuarioYPassword.substring(0,10); 13 | 14 | password = usuarioYPassword.substr(11, 16); 15 | 16 | console.log(`El usuario ${nombreDeUsuario} tiene ${password} como password`); 17 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej60.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 60 3 | Crear un documento con el nombre ej60.js 4 | Declarar la variable nota y asignar un valor de 0 a 10 5 | Si la nota es mayor o igual a 9 entonces 6 | Mostrar en consola el siguiente mensaje: El alumno aprobó y es muy bueno 7 | Si la nota es menor que 9 Y mayor o igual que 6 entonces 8 | Mostrar en consola el siguiente mensaje: El alumno aprobó 9 | Si No 10 | Mostrar en consola el siguiente mensaje: El alumno no aprobó y debe hacer los ejercicios de nuevo 11 | */ 12 | 13 | let nota = 8; 14 | 15 | if (nota >= 9){ 16 | console.log('El alumno aprobó y es muy bueno'); 17 | }else if(nota < 9 && nota > 6){ 18 | console.log('El alumno aprobó'); 19 | }else{ 20 | console.log('El alumno no aprobó y debe hacer los ejercicios de nuevo'); 21 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej129.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 129 3 | Crear un documento con el nombre ej129.js 4 | Copiar y pegar el código del ejercicio 125 5 | Recorrer la lista de gustos de helados y mostrarlos en consola uno a 6 | uno utilizando console.log() 7 | De inicio a fin 8 | De fin a inicio 9 | */ 10 | 11 | let helados = ['crema del cielo', 'granizado', 'chocolate', 'dulce de leche', 12 | 'frutillas','banana split', 'almendrado','amarena','crema con frutillas', 13 | 'chocolate nevado']; 14 | 15 | console.log("********** De inicio a fin **********"); 16 | for(let i=0; i < helados.length; i++){ 17 | console.log(helados[i]); 18 | } 19 | 20 | console.log("********** De fin a inicio **********"); 21 | for(let i=helados.length-1; i > 0; i--){ 22 | console.log(helados[i]); 23 | } 24 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej22.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ejercicio 22 3 | Crear un documento con el nombre ej22.js 4 | Declarar la variable salir y establecer el siguiente valor: true 5 | Declarar la variable casado y establecer el siguiente valor: false 6 | Declarar la variable usuarioRegistrado y establecer el siguiente valor: false 7 | Declarar la variable meGustaJs y establecer el siguiente valor: true 8 | Mostrar los valores de cada variable de la siguiente forma: 9 | console.log(nombreDeLaVariable, valor) 10 | */ 11 | 12 | let salir=true, 13 | casado=false, 14 | usuarioRegistrado=false, 15 | meGustaJs=true; 16 | 17 | 18 | console.log('salir, '+ salir); 19 | console.log('casado, '+ casado); 20 | console.log('usuarioRegistrado, '+ usuarioRegistrado); 21 | console.log('meGustaJs, '+ meGustaJs); 22 | 23 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej54.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 54 3 | Crear un documento con el nombre ej54.js 4 | Copiar el código del ej51.md 5 | Modificar el código para que cumpla con el nuevo requisito 6 | Si el nombre del usuario es igual a 'pepe2017' Y el password es igual a '12345' Entonces 7 | Mostrar en consola el siguiente mensaje: El usuario está autenticado y puede ver el contenido del sitio 8 | SI NO: 9 | Mostrar en consola el siguiente mensaje: Error, no se pudo autenticar al usuario, puede intentarlo más tarde 10 | */ 11 | 12 | 13 | let usuario = 'pepe2017', password = '12345'; 14 | 15 | if(usuario == 'pepe2017'){ 16 | console.log('El usuario está autenticado y puede ver el contenido del sitio'); 17 | }else{ 18 | console.log('Error, no se pudo autenticar al usuario, puede intentarlo más tarde'); 19 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej132.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 132 3 | Crear un documento con el nombre ej132.js 4 | Copiar la lista de mutantes del ejercicio 130 5 | Si James "Logan" Howlett Y Prof. Charles Francis Xavier están en 6 | la lista de mutantes entonces: 7 | Mostrar: Amamos a los X-men 8 | Sino 9 | Mostrar: Los X-men apestan 10 | */ 11 | 12 | let mutantes = ['Prof. Charles Francis Xavier', 'Scott Summers', 13 | 'Dr. Henry Philip "Hank" McCoy', 'Jean Elaine Grey', 14 | 'Calvin Montgomery Rankin', 'Kevin Sydney', 'Lorna Sally Dane', 15 | 'Alexander Summers', 'Suzanne Chan', 'James "Logan" Howlett', 'Ororo Monroe']; 16 | 17 | for (let i = 0; i <= mutantes.length-1; i++) { 18 | 19 | if(mutantes[i] == 'James "Logan Howlett"' || mutantes[i] == 'Prof. Charles Francis Xavier'){ 20 | console.log('Amamos a los X-men'); 21 | } 22 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej122.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 122 3 | Crear un documento con el nombre ej122.js 4 | Crear un array con el nombre ingredientes y asignar los siguientes elementos: 5 | 6 | Carne de cerdo, Tomate, Pollo, Lechuga, Lomo, Zanahoria, Rúcula 7 | 8 | Declarar un nuevo array vegetariano y asginar sólo los ingredientes que deberían 9 | estar en la lista vegetariana 10 | Mostrar en consola las dos listas con menú regular y versión vegetariano 11 | */ 12 | 13 | let ingredientes = ['Carne de cerdo','Tomate','Pollo','Lechuga', 14 | 'Lomo','Zanahoria','Rúcula']; 15 | 16 | let vegetariano = [ingredientes[1],ingredientes[3],ingredientes[5],ingredientes[6]]; 17 | 18 | let carnes = [ingredientes[0], ingredientes[2], ingredientes[4]]; 19 | 20 | console.log(`********** Menú *************\n 21 | Menú con verduras: ${vegetariano}\nMenú con carnes: ${carnes}`) -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej21.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 21 3 | Crear un documento con el nombre ej21.js 4 | Declarar una variable numérica edad con el siguiente valor: tu edad 5 | 6 | Declarar una variable numérica telefono con el siguiente valor: 7 | el número de tu telefono 8 | 9 | Declarar una variable string calle con el siguiente valor: 10 | el nombre de la calle donde vivis 11 | 12 | Declarar una variable numérica altura con el siguiente valor: 13 | altura de la calle donde vivis 14 | 15 | Mostrar en consola los siguientes mensajes: 16 | Tengo edad años 17 | 18 | Mi teléfono es telefono 19 | Vivo en calle al altura 20 | Utilizar interpolación de textos 21 | \ 22 | */ 23 | 24 | let edad = 25, 25 | telefono = 0303456, 26 | calle = 'Calle falsa 1234', 27 | altura = 123; 28 | 29 | console.log(`Mi teléfono es ${telefono}\nVivo en ${calle} ${altura}\n `) -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej35.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 35 3 | Crear un documento con el nombre ej35.js 4 | 5 | Declar la variable number numeroDeCliente y asignar el valor 143245 6 | Declar la variable numeroDeClienteIngresado y asignar el valor '143245' 7 | Mostrar en consola si el dato ingresado y el número de cliente son iguales (comparación por valor) 8 | 9 | Utilizar el siguiente mensaje: El número ingresado por el cliente es correcto: true o false 10 | Mostrar en consola si el dato ingresado y el número de cliente son iguales (comparación por valor 11 | y tipo de dato) 12 | Utilizar el siguiente mensaje: El cliente ingresó un número de cliente válido: true o false 13 | */ 14 | 15 | let numeroDeCliente = 143245; 16 | let numeroDeClienteIngresado = '143245'; 17 | 18 | if (numeroDeCliente == numeroDeClienteIngresado){ 19 | console.log('Los valores ingresados son iguales'); 20 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej121.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 121 3 | Crear un documento con el nombre ej121.js 4 | Declarar un array con el nombre juegos y asignar los siguientes valores: 5 | 6 | Grand Theft Auto V, The Last of Us Remastered, Persona 5, Metal Gear Solid V 7 | Uncharted 4, Journey, Bloodborne, The Witcher 3, INSIDE, flower, Diablo III 8 | 9 | Reemplazar Grand Theft Auto V por FIFA 18 10 | Reemplazar Metal Gear Solid V por FIFA 17 11 | Reemplazar flower por FIFA 16 12 | Mostrar en consola la lista de juegos modificada 13 | */ 14 | 15 | let juegos = ['Grand Theft Auto V','The Last of Us Remastered', 16 | 'Persona 5','Metal Gear Solid V','Uncharted 4','Journey','Bloodborne', 17 | 'The Witcher 3','INSIDE','flower','Diablo III']; 18 | 19 | juegos[0] = 'FIFA 18'; 20 | juegos[3] = 'FIFA 17'; 21 | juegos[9] = 'FIFA 16'; 22 | 23 | console.log('Lista de juegos modificada'+ juegos); -------------------------------------------------------------------------------- /NodeJs/Ejercicio11/ej11.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ejercicio 11 3 | Crear un archivo con el nombre ej11.js 4 | Levantar un servidor de Express 5 | Crear un archivo html con el nombre index.html 6 | Crear un archivo html con el nombre productos.html 7 | Al llamar a localhost:3000 se debe mostrar el archivo index.html 8 | Al llamar a localhost:3000/products se debe mostrar el archivo productos.html 9 | index.html 10 | Crear un archivo HTML bien formado 11 | Agregar un título h1 con el texto 'Home' 12 | Agregar un título h2 autogenerado 13 | Agregar 3 párrafos autogenerados 14 | Agregar un link para ir a la sección de productos 15 | productos.html 16 | Crear un archivo HTML bien formado 17 | Agregar un título h1 con el texto 'Productos' 18 | Crear una tabla con 10 productos que te gustaría comprarte 19 | Mostrar en la tabla los siguientes datos: 20 | Descripción del producto o nombre 21 | Precio 22 | Lugar donde lo venden 23 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej39.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 39 3 | Crear un documento con el nombre ej39.js 4 | Declarar una variable nombre con tu nombre como valor 5 | Declarar una variable apellido con tu apellido como valor 6 | 7 | Mostrar en consola el siguientes mensajes: 8 | Mi nombre es nombre y tiene nombre.length letras 9 | Mi nombre es apellido y tiene apellido.length letras 10 | Utilizar console.log() para cada mensaje 11 | Utilizar interpolación de textos remplazando los valores de las variables nombre 12 | y apellido y la cantidad de letras que tiene cada uno 13 | Se puede utilizar variables auxiliares para la cantidad de letras que tienen los 14 | valores de las variables nombre y apellido 15 | */ 16 | 17 | let nombre = 'Ezequiel', apellido = 'Romero'; 18 | 19 | console.log(`Mi nombre es ${nombre} y tiene ${nombre.length} letras`); 20 | console.log(`Mi apellido es ${apellido} y tiene ${apellido.length} letras`); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej17.js: -------------------------------------------------------------------------------- 1 | /** 2 | Ejercicio 17 3 | 4 | Crear un documento con el nombre ej17.js 5 | Crear una variable serie con el valor: Game of Thrones 6 | Crear una variable dragon1 con el valor Drogon 7 | Crear una variable dragon2 con el valor Rhaegal 8 | Crear una variable dragon3 con el valor Viserion 9 | 10 | Crear una variable template con el siguiente valor: 11 | Los 3 dragones de serie se llaman: dragon1, dragon2 y dragon3 12 | 13 | Mostrar en consola el siguiente mensaje: 14 | 15 | Los 3 dragones de Game of Thrones se llaman: 16 | Drogon, Rhaegal y Viserion, utilizando interpolación de textos 17 | 18 | */ 19 | 20 | let serie = 'Game of Thrones', 21 | dragon1 = 'Drogon', 22 | dragon2 = 'Rhaegal', 23 | dragon3 = 'Viserion', 24 | template = `Los 3 dragones de serie se llaman: ${dragon1}, 25 | ${dragon2} y ${dragon3}`; 26 | 27 | console.log(`${template} utilizando interpolación de textos`); 28 | 29 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej75.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 75 3 | Crear un documento con el nombre ej75.js 4 | Escribir un programa que muestre en consola la secuencia de 5 | Fibonacci para los primeros 10 números utilizando la estructura while 6 | Podes leer más sobre esta secuencia en Wikipedia 7 | Acá podes encontrar una pequeña ayuda 8 | */ 9 | 10 | const fibonacci = () =>{ 11 | let fibo1=1, fibo2=1, pos=1, numero=10; 12 | 13 | while(numero > fibo1 && numero > fibo2){ 14 | if(fibo1 > fibo2){ 15 | fibo1 += fibo2; 16 | }else{ 17 | fibo2 += fibo1; 18 | } 19 | pos++; 20 | } 21 | if(numero == fibo1 || numero == fibo2){ 22 | return ("El numero "+ numero+ " pertenece a la sucesion y se encuentra en la posicion "+ (pos+1)); 23 | }else{ 24 | return ("El numero "+ numero+ " no pertenece a la sucesion Fibonacci") 25 | } 26 | } 27 | 28 | console.log(fibonacci()); 29 | 30 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej106.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 106 3 | Crear un documento con el nombre ej106.js 4 | Declarar la función obtenerIDUsuario que retorna un valor number con el número 50 5 | Declarar la función usuarioValido que retorna un valor boolean 6 | En esta función obtener el ID del usuario con la función obtenerIDUsuario 7 | Si el ID del usuario es mayor que 30 retornar falso sino verdadero 8 | SI el usuarioValido Entonces 9 | Mostrar el mensaje: EL usuario es válido 10 | SINO 11 | Mostrar el mensaje: EL usuario no es válido 12 | */ 13 | 14 | const obtenerIDUsuario = () =>{ 15 | return 50; 16 | } 17 | 18 | const usuarioValido = () =>{ 19 | if(obtenerIDUsuario().valueOf() > 30){ 20 | return false; 21 | } 22 | else{ 23 | return true; 24 | } 25 | } 26 | 27 | switch(usuarioValido().valueOf()){ 28 | case true: console.log('El usuario es valido');break; 29 | case false: console.log('El usuario no es valido');break; 30 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio5/ej5.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 5 3 | Crear una carpeta con el nombre ej5 4 | Inicializar un proyecto de Node.js utilizando NPM dentro de la carpeta ej5 5 | El nombre del proyecto tiene que ser Ejercicio 5 6 | Crear un archivo index.js 7 | Crear un archivo numeros.js 8 | 9 | Declarar una función con el nombre esPar, esta función acepta un número como 10 | parámetro. Retorna un valor boolean true en caso de que el valor sea par y false 11 | en caso de que no lo sea. Exportar la función index.js. Instalar el 12 | módulo logplease como solo dependencia de desarrollo de nuestro proyecto. 13 | Importar el módulo logplease. Importar el módulo numeros Llamar a la función 14 | es par con los siguientes valores: 15 | 16 | 2, 3, 101, 201, 202, 100 17 | 18 | Si el número es par mostrar en consola el siguiente mensaje utilizando los 19 | métodos indicados del módulo logplease: 20 | El número es par (utilizar el método info) 21 | Sino 22 | El número no es par (utilizar el método error) 23 | */ -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej107.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 107 3 | Crear un documento con el nombre ej107.js 4 | Crear una función con el nombre numeroMasGrande que acepte dos 5 | parámetros numéricos llamados numero1 y numero2 6 | Ejecutar la función pasando 2 números como parámetros 7 | Mostrar en consola el siguiente mensaje: 8 | 9 | El número ${numero1} es más grande que ${numero2} 10 | Agregar la validación para ver si son el mismo número, en caso de que 11 | así sea agregar el mensaje: Los dos números son ${numero1} 12 | Validar que los parámetros que nos pasaron sean del tipo number, 13 | caso contrario mostrar un mensaje en consola que diga: 14 | 15 | Esta función espera valores del tipo number 16 | */ 17 | 18 | const numeroMasGrande = (numero1, numero2) =>{ 19 | 20 | (numero1 > numero2) ? 21 | console.log(`El número ${numero1} es más grande que ${numero2}`) 22 | : 23 | console.log(`El número ${numero2} es más grande que ${numero1}`) 24 | 25 | } 26 | 27 | numeroMasGrande(10, 50); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio7.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Crea 3 arrays. El primero tendra 5 números y el segundo se llamará pares y 3 | * el tercero impares, ambos estarán vacios. Despues multiplica cada uno de 4 | * los números del primer array por un número aleatorio entre 1 y 10, si el 5 | * resultado es par guarda ese número en el array de pares y si es impar en 6 | * el array de impares. 7 | * 8 | * Muestra por consola: 9 | * - La multiplicacion que se produce junt con su resultado con el formato 2*3 = 16 10 | * - El array de pares e impares 11 | */ 12 | 13 | const numeros = [5, 10, 20, 100, 3]; 14 | let pares = [], impares = []; 15 | 16 | for(const numero of numeros){ 17 | let random = Math.random() * 10 + 1; 18 | const result = Math.round(numero * random); 19 | 20 | console.log(numeros +' x '+ random + ' = '+ result) 21 | if(result % 2 == 0){ 22 | pares.push(result); 23 | }else{ 24 | impares.push(result); 25 | 26 | } 27 | } 28 | console.log(pares); 29 | console.log(impares); -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej43.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 43 3 | Crear un documento con el nombre ej43.js 4 | Declarar una variable texto con el siguiente valor: game of thrones 5 | Declarar 3 variables en una línea con los siguientes nombres: 6 | primerLetra 7 | segundaLetra 8 | tercerLetra 9 | Asignar a la variable primerLetra el primer caracter del contenido de la variable texto 10 | Asignar a la variable segundaLetra el caracter número 5 del contenido de la variable texto 11 | Asignar a la variable tercerLetra el caracter número 8 del contenido de la variable texto 12 | Declarar una variable resultado con el valor de concatenar las variables primerLetra, 13 | segundaLetra y tercerLetra 14 | Mostrar en consola el contenido de la variable resultado en mayúscula 15 | Deberías ver GOT como resultado 16 | */ 17 | 18 | let texto = 'game of thrones', primerLetra=texto[0],segundaLetra=texto[5],tercerLetra=texto[8]; 19 | let resultado = `${primerLetra} ${segundaLetra} ${tercerLetra}`; 20 | 21 | console.log(resultado.toUpperCase()); 22 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej26.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 26 3 | Crear un documento con el nombre ej26.js 4 | Definir el concepto de curso utilizando diferentes variables y 5 | tipos de datos (Ejemplo: nombre, nro de aula, cantidad de alumnos, etc) 6 | Encontrar al menos 6 variables que ayuden a describir el concepto de curso 7 | 8 | Mostrar el valor de las variables de la siguiente forma: 9 | console.log(nombreDeLaVariable, valor) 10 | 11 | Mostrar el tipo de dato de las variables de la siguiente forma: 12 | console.log(nombreDeLaVariable, typeof nombreDeLaVariable) 13 | */ 14 | 15 | //let nombre, nroAula, cantidadAlumnos; 16 | const nombre = 'Ezequiel'; 17 | const edad = 25; 18 | const casado = false; 19 | const indefinido = undefined; 20 | const nulo = null; 21 | const nan = "lalala"; 22 | 23 | console.log(typeof nombre); // string 24 | console.log(typeof edad); // number 25 | console.log(typeof casado); // boolean 26 | console.log(typeof indefinido); // undefined 27 | console.log(typeof nulo); // object 28 | console.log(Number(nan)); // NaN -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej127.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 127 3 | Crear un documento con el nombre ej127.js 4 | Copiar y pegar el código del último ejercicio 126 5 | A la lista final que mostramos en consola eliminarle los 2 primeros gustos y luego 6 | asignar los gustos eliminados en un nuevo array de gustos que no tienen stock 7 | Mostrar la lista de gustos que quedó 8 | Mostrar la lista de gustos sin stock 9 | */ 10 | 11 | let helados = ['crema del cielo', 'granizado', 'chocolate', 'dulce de leche', 12 | 'frutillas', 'banana split', 'almendrado', 'amarena', 'crema con frutillas', 13 | 'chocolate nevado'] 14 | 15 | const mostrarGusto = (helados, gustoNuevo, stockArray) => { 16 | let i = helados.length - 1; 17 | 18 | for (i; i >= 0; i--) { 19 | gustoNuevo.push(helados[i]); 20 | } 21 | console.log(gustoNuevo); 22 | stockArray = gustoNuevo.splice(0,1); 23 | console.log(stockArray); 24 | } 25 | 26 | let gustoNuevo = [], 27 | stockArray = []; 28 | mostrarGusto(helados, gustoNuevo, stockArray); 29 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej25.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 25 3 | Crear un documento con el nombre ej25.js 4 | 5 | Vamos a definir un jugador de un juego de super heroes utilizando 6 | los siguientes nombres de variables y valores. 7 | Utilizar los tipos de datos correspondientes para cada variable 8 | 9 | nombreDeSuperHeroe: Batman 10 | nombre: Bruce Wayne 11 | vuela: no 12 | maneja: si 13 | vida: (valor de 0 a 100) 14 | trabajo: indefinido 15 | tiempoLibre: nulo 16 | 17 | Mostrar el valor de las variables de la siguiente forma: 18 | console.log(nombreDeLaVariable, valor) 19 | Mostrar el tipo de dato de las variables de la siguiente forma: 20 | console.log(nombreDeLaVariable, typeof nombreDeLaVariable) 21 | */ 22 | 23 | let nombreDeSuperHeroe = 'Batman', 24 | nombre = 'Bruce Wayne', 25 | vuela = 'no', 26 | maneja = 'si', 27 | vida = '(valor de 0 a 100)', 28 | trabajo = undefined, 29 | tiempoLibre = null; 30 | 31 | console.log('nombreDeSuperHeroe', nombreDeSuperHeroe); 32 | console.log('nombreDeSuperHeroe', typeof(nombreDeSuperHeroe)); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej126.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 126 3 | Crear un documento con el nombre ej126.js 4 | Copiar y pegar el código del ejercicio 125 5 | Ahora los gustos de helado se piden en otro orden del que fueron ingresados 6 | El primer elemento tiene que ser el último y el último el primero 7 | Para agregar los gustos utilizar una función que acepte 2 parámetros, 8 | la colección de gustos de helados y el nuevo gusto 9 | Esta función retorna la lista modificada 10 | Mostrar en consola los gustos de helados 11 | */ 12 | 13 | let helados = ['crema del cielo', 'granizado', 'chocolate', 'dulce de leche', 14 | 'frutillas', 'banana split', 'almendrado', 'amarena', 'crema con frutillas', 15 | 'chocolate nevado'] 16 | //.reverse(); 17 | 18 | const mostrarGusto = (helados, gustoNuevo) => { 19 | let i = helados.length - 1; 20 | 21 | for (i; i >= 0; i--) { 22 | gustoNuevo.push(helados[i]); 23 | } 24 | console.log(gustoNuevo); 25 | } 26 | 27 | let gustoNuevo = []; 28 | mostrarGusto(helados, gustoNuevo); 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Ejercicios resueltos del curso de NodeJs 2 | 3 | _Son ejercicios que realice en el curso de NodeJs de [ComIT](http://www.comunidadit.org/), [Udemy](https://www.udemy.com/course/curso-nodejs-crea-tus-aplicaciones-restful/)_ 4 | 5 | ### Construido con 🛠️ 6 | _Los ejercicios estan organizados segun el nivel de dificultad y utilice las siguientes tecnologias:_ 7 | 8 | * [JavaScript](https://developer.mozilla.org/es/docs/Web/JavaScript) - Es un lenguaje de programación que se utiliza principalmente para crear páginas web dinámicas. 9 | * [Node.js](https://nodejs.org/es/) - Es un entorno de ejecución para JavaScript construido con el motor de JavaScript V8 de Chrome. 10 | * [Express](https://expressjs.com/es/) - Es un framework de nodejs que nos permite crear un servidor de manera muy sencilla. 11 | * [Handlebars](https://handlebarsjs.com/) - Es un motor de plantillas muy popular. 12 | * [MongoDB Atlas](https://www.mongodb.com/cloud/atlas) - Es el servicio global de base de datos en la nube para aplicaciones modernas. 13 | 14 | ### Autor ✒️ 15 | * **Alumno: _Ezequiel Romero_** 16 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej59.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 59 3 | Crear un documento con el nombre ej59.js 4 | Declarar la variable numero1 y numero2 5 | Asignar un valor numérico a cada variable declarada 6 | Si la variable numero1 y numero2 son iguales entonces 7 | Mostrar el siguiente mensaje en consola: Los dos números son iguales 8 | Si la variable numero1 es más grande que numero2 entonces 9 | Mostrar el siguiente mensaje en consola: La variable numero1 es más grande que numero2 10 | Si No 11 | Mostrar el siguiente mensaje en consola: La variable numero2 es más grande que numero1 12 | Cambiar el valor de la variable hora un par de veces y ejecutarlo para ver que pasa 13 | Probar cambiar los mensajes utilizando los valores reales de cada variable 14 | */ 15 | 16 | let numero1 = 10, numero2 = 20; 17 | 18 | if(numero1 == numero2){ 19 | console.log('Los dos números son iguales'); 20 | }else if(numero1 > numero2){ 21 | console.log('La variable numero1 es más grande que numero2'); 22 | } 23 | else{ 24 | console.log('La variable numero2 es más grande que numero1'); 25 | } 26 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej130.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 130 3 | Crear un documento con el nombre ej130.js 4 | 5 | Declarar la siguiente lista de mutantes: 6 | 7 | Prof. Charles Francis Xavier, Scott Summers, Dr. Henry Philip "Hank" McCoy, 8 | Jean Elaine Grey, Calvin Montgomery Rankin, Kevin Sydney, Lorna Sally Dane, 9 | Alexander Summers, Suzanne Chan, James "Logan" Howlett, Ororo Monroe, 10 | Ordenar la lista 11 | 12 | Revertir el orden de la lista ordenada. Unir los nombres de todos los 13 | mutantes utilizando * para separarlos. Mostrar en consola: 14 | 15 | Lista original de mutantes 16 | Lista ordenada de mutantes 17 | Lista revertida de mutantes 18 | Nombres de mutantes sepadaros por * 19 | */ 20 | 21 | let mutantes = ['Prof. Charles Francis Xavier','Scott Summers', 22 | 'Dr. Henry Philip "Hank" McCoy','Jean Elaine Grey', 23 | 'Calvin Montgomery Rankin','Kevin Sydney','Lorna Sally Dane', 24 | 'Alexander Summers','Suzanne Chan','James "Logan" Howlett','Ororo Monroe'].reverse(); 25 | 26 | let cadenaNueva = mutantes.join(' * '); 27 | 28 | console.log(cadenaNueva); 29 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej48.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 48 3 | Crear un documento con el nombre ej48.js 4 | 5 | Declarar la variable mensaje y asignar el siguiente valor: 6 | '3.14 es un gran número, pero mejor es 42 que le da significado a la vida' 7 | 8 | Declarar la variable pi y obtener el valor 3.14 de la variable mensaje y transformarlo como número decimal 9 | Declarar la variable significadoDeLaVida y obtener el valor 42 de la variable mensaje y 10 | transformarlo como número entero 11 | 12 | Declarar la variable resultado y asignar el resultado de la suma de las variables pi y significadoDeLaVida 13 | Mostrar en consola el contenido de la variable resultado 14 | 15 | Mostrar en consola el mensaje: 45.14 es el resultado de sumar las variables pi y 16 | significadoDeLaVida, concatenando los valores. Utilizar el método toString para 17 | convertir los numbers a strings. 18 | */ 19 | 20 | let mensaje = '3.14 es un gran número, pero mejor es 42 que le da significado a la vida',pi, pi1; 21 | 22 | pi = parseFloat(mensaje.substr(0, 4)) + parseFloat(mensaje.substr(38, 2)); 23 | 24 | console.log(pi); 25 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio10/ej10.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 10 3 | Crear un archivo con el nombre ej10.js 4 | Levantar un servidor de Express 5 | Manejar las siguientes rutas: 6 | Ruta: Raiz del sitio ,Metodo: get, Acción: Mostrar un mensaje de bienvenida 7 | Ruta: Productos, Metodo: get, Acción: Mostrar un mensaje que diga: listado de 8 | productos 9 | Ruta: Productos, Metodo: post, Acción: Mostrar un mensaje que diga: crear 10 | un producto 11 | Ruta: Productos, Metodo: put, Acción: Mostrar un mensaje que diga: actualizar 12 | un producto 13 | Ruta: Productos, Metodo: delete, Acción: Mostrar un mensaje que diga: borrar 14 | un producto 15 | Ruta: Usuarios, Metodo: get, Acción: Mostrar un mensaje que diga: listado de 16 | usuarios 17 | Ruta: Usuarios, Metodo: post, Acción: Mostrar un mensaje que diga: crear un usuario 18 | Ruta: Usuarios, Metodo: put, Acción: Mostrar un mensaje que diga: actualizar 19 | un usuario 20 | Ruta: Usuarios, Metodo: delete, Acción: Mostrar un mensaje que diga: borrar 21 | un usuario 22 | Crear un método que maneje todos los verbos de HTTP para la pagina 23 | Utilizar Postman para probar todos los llamados 24 | */ -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/ej34.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 34 3 | Crear un documento con el nombre ej34.js 4 | Declarar 3 variables con los siguientes nombres: ingresos, ganancias, impuestos 5 | Asignar los siguientes valores a cada variable según corresponda: 6 | ingresos: asignar el valor 1000 7 | ganancias: asignar el valor 600 8 | impuestos: asignar el valor 500 9 | 10 | Este mes se esperan los siguientes objetivos: 11 | Generar al menos 800 pesos o más de ingreso 12 | Gastar menos de 400 pesos de impuestos 13 | Se Paga bono si se ganan 600 pesos de ganancias justo 14 | 15 | Mostrar en consola los siguientes mensajes utilizando los operadores esperados: 16 | Objetivo de ingresos: true o false 17 | Utilizar el operador mayor o igual que 18 | Objetivo de impuestos: true o false 19 | Utilizar el operador menor que 20 | Bono de ganancias: true o false 21 | Utilizar el operador de q simple 22 | */ 23 | 24 | let ingresos=1000, ganancias=600, impuestos=500; 25 | console.log('Objetivo de ingresos: '+(ingresos>=800)); 26 | console.log('Objetivos de impuestos: '+(impuestos<400)); 27 | console.log('Bono de ganancias: '+ (ganancias>=600)); 28 | -------------------------------------------------------------------------------- /JavaScript/Conceptos-Basicos-Practica/Ejercicio2.js: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | Escribe un programa que pueda calcular el area de 3 figuras geometricas, 4 | triangulo, rectangulo y circulo. 5 | En primer lugar preguntar de que figura se quiere calcular el area, 6 | despues solicita los datos que necesitas para calcularlo. 7 | 8 | Triangulo = (b*h)/2 9 | Rectangulo = b*h 10 | Circulo = alfa*r2(pi * r2) 11 | 12 | */ 13 | 14 | let triangulo, rectangulo, circulo, b, h, radio, preguntar; 15 | 16 | preguntar = prompt('De que figura se quiere calcular el area: '); 17 | 18 | if (preguntar == 'triangulo'){ 19 | b = prompt('Ingrese la base del triangulo: '); 20 | h = prompt('Ingrese la altura del triangulo: '); 21 | 22 | triangulo = (parseFloat(b * h)/2); 23 | alert('El area del triangulo es : ' +triangulo); 24 | } 25 | else if(preguntar == 'rectangulo'){ 26 | b = prompt('Ingrese la base del rectangulo: '); 27 | h = prompt('Ingrese la altura del rectangulo: '); 28 | 29 | rectangulo = (parseFloat(b * h)); 30 | alert('El area del rectangulo es : ' +rectangulo); 31 | } 32 | else if(preguntar == 'circulo'){ 33 | radio = prompt('Ingrese el radio del circulo: '); 34 | 35 | circulo = (radio**2 (Math.PI * radio**2)); 36 | alert('El area del circulo es : ' +circulo); 37 | } 38 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio11/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio 11 de NodeJs 8 | 9 | 10 |

Home

11 | 12 |

Subtitulo

13 | 14 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. 15 | Libero iusto cupiditate modi quibusdam autem saepe quam est consequatur! 16 | Praesentium inventore maiores itaque aliquid iusto. 17 | Quidem necessitatibus nihil adipisci amet voluptate. 18 |

19 | 20 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. 21 | Libero iusto cupiditate modi quibusdam autem saepe quam est consequatur! 22 | Praesentium inventore maiores itaque aliquid iusto. 23 | Quidem necessitatibus nihil adipisci amet voluptate. 24 |

25 | 26 |

Lorem ipsum dolor sit amet consectetur adipisicing elit. 27 | Libero iusto cupiditate modi quibusdam autem saepe quam est consequatur! 28 | Praesentium inventore maiores itaque aliquid iusto. 29 | Quidem necessitatibus nihil adipisci amet voluptate. 30 |

31 | 32 | 33 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej101.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 101 3 | Crear un documento con el nombre ej101.js 4 | Declarar una función que muestre los siguientes datos en consola: 5 | Tu Nombre 6 | Edad 7 | Teléfono 8 | Calle 9 | Altura 10 | Código postal 11 | Casado true/false 12 | */ 13 | 14 | const datos = () =>{ 15 | let nombre, edad, tel, calle, altura, codig, casad; 16 | 17 | nombre = prompt('Ingrese tu nombre '); 18 | edad = prompt('Ingrese tu edad '); 19 | tel = prompt('Ingrese tu telefono '); 20 | calle = prompt('Ingrese tu calle en donde vives '); 21 | altura = prompt('Ingrese la altura de donde vives '); 22 | codig = prompt('Ingrese el codigo postal '); 23 | 24 | const comprobar = () =>{ 25 | casad = prompt('Ingrese true si estas casado sino false'); 26 | switch(casad){ 27 | case 'true': return 'esta casado';break; 28 | case 'false': return 'no esta casado';break; 29 | default: return 'incorrecto';break; 30 | } 31 | } 32 | 33 | document.write(`Tu nombre es: ${nombre}, su edad ${edad} años, 34 | su telefono ${tel}, su calle en donde vives ${calle}, 35 | su altura ${altura}, su codigo postal ${codig}, su 36 | estado civil es ${comprobar()} `); 37 | } 38 | datos(); -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/public/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: 'Trebuchet MS', 'Lucida Sans Unicode', 'Lucida Grande', 'Lucida Sans', Arial, sans-serif; 3 | font-size: 16px; 4 | } 5 | 6 | nav { 7 | background: darkslateblue; 8 | padding: 10px; 9 | text-align: right; 10 | color: white; 11 | } 12 | 13 | nav a { 14 | text-decoration: none; 15 | cursor: pointer; 16 | background-color: darkorange; 17 | padding: 5px; 18 | } 19 | 20 | form input { 21 | display: block; 22 | margin: 10px 0px; 23 | padding: 10px; 24 | width: 260px; 25 | box-sizing: content-box; 26 | } 27 | 28 | form input[type=submit] { 29 | border: none; 30 | background-color: blue; 31 | color: white; 32 | cursor: pointer; 33 | box-sizing: content-box; 34 | width: 260px; 35 | } 36 | 37 | form a { 38 | text-decoration: none; 39 | background-color: darkgreen; 40 | margin: 30px 0px; 41 | color: white; 42 | padding: 10px; 43 | box-sizing: content-box; 44 | display: block; 45 | width: 260px; 46 | text-align: center; 47 | } 48 | 49 | .mensaje { 50 | color: white; 51 | padding: 10px; 52 | } 53 | 54 | .mensaje-error { 55 | background-color: maroon; 56 | } 57 | 58 | .mensaje-exito { 59 | background-color: darkgreen; 60 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio13/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const port = 3000; 3 | const app = express(); 4 | 5 | app.use(express.json()); 6 | 7 | //Peticiones GET y POST a la ruta inicial de la app 8 | app.get('/', (req, res)=>{ 9 | res.send('Pagina: home, método: GET'); 10 | }); 11 | 12 | app.post('/:id', (req, res)=>{ 13 | //Para mostrar la informacion que el cliente esta mandando al backend 14 | //el json que le envio por el postman 15 | console.log(req.body); 16 | //Para mostrar el id que le envio por postman y verlo en la consola 17 | //req.params es un objeto 18 | console.log(req.params); 19 | res.send('Pagina: home, método: POST'); 20 | }); 21 | 22 | //Peticiones GET, POST, PUT, DELETE a la ruta productos 23 | app.get('/productos', (req, res)=>{ 24 | res.send('Pagina: productos, método: GET'); 25 | }); 26 | 27 | app.post('/productos', (req, res)=>{ 28 | res.send('Pagina: productos, método: POST'); 29 | }); 30 | 31 | app.put('/productos/:id', (req, res)=>{ 32 | console.log(req.body); 33 | //res.send('Pagina: productos, método: PUT'); 34 | res.send(`Producto ${req.params.id} fue actualizado`); 35 | }); 36 | 37 | app.delete('/productos/:id', (req, res)=>{ 38 | res.send(`Producto ${req.params.id} fue eliminado`); 39 | }); 40 | 41 | app.listen(port, ()=>{ 42 | console.log(`El servidor esta corriendo en http://localhost:${port}`); 43 | }); -------------------------------------------------------------------------------- /NodeJs/Ejercicio16/ej16.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 16 3 | Crear una carpeta con el nombre ej16 4 | Crear la siguiente estructura: 5 | . 6 | ├── index.js 7 | └── index.html 8 | └── public 9 | ├── css 10 | └── style.css 11 | ├── js 12 | └── script.js 13 | ├── img 14 | └── foto.png 15 | 16 | index.html 17 | 18 | 19 | 20 | 21 | Documentos Estáticos en Node y Express 22 | 23 | 24 | 25 | 26 |

Rick & Morty!!

27 | Vamosooooossssssss 28 | 29 | 30 | css/style.css 31 | body { 32 | background-color: #eee; 33 | color: green; 34 | font-family: Arial, Helvetica, sans-serif; 35 | } 36 | 37 | h1 { 38 | font-weight: normal; 39 | } 40 | 41 | img { 42 | border-radius: 5px; 43 | } 44 | js/script.js 45 | console.log('Estamos sirviendo un archivo ECMAScript desde el servidor!!!!!) 46 | img 47 | Copiar la siguiente imagen dentro de la carpeta img de tu nuevo sitio ej16 48 | index.js 49 | Levantar un servidor de Express 50 | Configurar la carpeta public para que pueda exponer y servir contenido estático 51 | (/Users/nisnardi/Documents/cursos/comunidad-it/comunidad-it-js/assets/node/yeay.jpg). 52 | */ -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej131.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 131 3 | Crear un documento con el nombre ej131.js 4 | Crear un array con el nombre de 5 alumnas del curso 5 | Crear un array con el nombre de 5 alumnos del curso 6 | Crear un array con el nombre de los alumnos y alumnas del curso 7 | Mostrar en consola los siguiente nombres de forma individual (uno por linea): 8 | Nombres de las alumnas (a mano utilizando índices) 9 | Nombres de los alumnos (utilizando while) 10 | Nombres de todos los alumnos del curso (utilizando for) 11 | */ 12 | 13 | let nombreAlumnas = ['Gabriela', 'Camila', 'Celeste', 'Luana', 'Lourdes']; 14 | let nombreAlumnos = ['Ezequiel','Dario','Lucas','Enrique','Leandro']; 15 | let nombresAlumnxs = ['Gabriela','Ezequiel','Camila','Dario','Celeste','Lucas', 16 | 'Luana','Enrique','Lourdes','Leandro']; 17 | 18 | console.log('********************* Utilizando índices *********************'); 19 | console.log(`${nombreAlumnas[0]} ${nombreAlumnas[1]} ${nombreAlumnas[2]} ${nombreAlumnas[3]} ${nombreAlumnas[4]}`); 20 | 21 | console.log('********************* Utilizando while *********************'); 22 | let i=0; 23 | while(i <= nombreAlumnos.length - 1){ 24 | console.log(nombreAlumnos[i]); 25 | i++; 26 | } 27 | 28 | console.log('********************* Utilizando for *********************'); 29 | for(let i=0; i 2 | 3 | 4 | 5 | 6 | 7 | Ejercicio 11 de NodeJs 8 | 9 | 10 |

Productos

11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 |
ProductoPrecio
Computadora$14000
Celular$5000
Television$6500
Aire Acondicionado$4500
Table$7590
Xbox$8500
Play$9999
Camaras de Seguridad$10000
Sega$3500
59 | 60 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio10/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const port = 5000; 3 | const app = express(); 4 | 5 | //Ruta: Raiz del sitio ,Metodo: get, Acción: Mostrar un mensaje de bienvenida 6 | app.get('/', (req, res)=>{ 7 | res.send('Bienvenida raiz del sitio'); 8 | }); 9 | 10 | //Ruta: Productos, Metodo: get, Acción: Mostrar un mensaje que diga: listado de 11 | //productos 12 | app.get('/Productos', (req, res)=>{ 13 | res.send('listado de productos'); 14 | }); 15 | 16 | //Ruta: Productos, Metodo: post, Acción: Mostrar un mensaje que diga: crear 17 | //un producto 18 | app.post('/Productos', (req, res)=>{ 19 | res.send('crear un producto'); 20 | }); 21 | 22 | //Ruta: Productos, Metodo: put, Acción: Mostrar un mensaje que diga: actualizar 23 | //un producto 24 | app.put('/Productos', (req, res)=>{ 25 | res.send('actualizar un producto'); 26 | }); 27 | 28 | //Ruta: Productos, Metodo: delete, Acción: Mostrar un mensaje que diga: borrar 29 | //un producto 30 | app.delete('/Productos', (req, res)=>{ 31 | res.send('borrar un producto'); 32 | }); 33 | 34 | //Ruta: 35 | //Usuarios, Metodo: get, Acción: Mostrar un mensaje que diga: listado de usuarios 36 | app.get('/Usuarios', (req, res)=>{ 37 | res.send('Listado de usuarios'); 38 | }); 39 | 40 | //Ruta: 41 | //Usuarios, Metodo: post, Acción: Mostrar un mensaje que diga: crear un usuario 42 | app.post('/Usuarios', (req, res)=>{ 43 | res.send('Crear un usuario'); 44 | }); 45 | 46 | //Ruta: Usuarios, Metodo: put, Acción: Mostrar un mensaje que diga: actualizar 47 | //un usuario 48 | app.put('/Usuarios' ,(req, res)=>{ 49 | res.send('Actualizar un usuario'); 50 | }); 51 | 52 | //Ruta: Usuarios, Metodo: delete, Acción: Mostrar un mensaje que diga: borrar 53 | //un usuario 54 | app.delete('/Usuarios', (req, res)=>{ 55 | res.send('Borrar un usuario'); 56 | }); 57 | 58 | app.listen(port, ()=>{ 59 | console.log(`El servidor esta corriendo en el puerto http://localhost:${port}`); 60 | }) -------------------------------------------------------------------------------- /JavaScript/JavaScript/script.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Crea un clase libro 3 | * La clase libro tendra titulo, autor, año y genero. Crea un método que devuelva 4 | * toda la información del libro. Pide 3 libros y guardalos en un array. Los libros 5 | * se introducirán al arrancar el programa pidiendo los datos con prompt. 6 | * Validar que los campos no se introduzca vacios, validar que el año sea un número 7 | * y que tenga 4 digitos. Validar que el genero sea: aventuras, terror o fantasia 8 | * crea una funcion que muestre todos los libros, crea una funcion que muestre 9 | * los autos ordenados alfabeticamente. 10 | * Crea una funcion que pida un genero y muestre la informacion de los libros que 11 | * pertenezcan a ese genero usando un metodo que devuelvan la informacion. 12 | */ 13 | 14 | class libro{ 15 | constructor(titulo, autor, anio, genero){ 16 | this.titulo = titulo; 17 | this.autor = autor; 18 | this.anio = anio; 19 | this.genero = genero; 20 | } 21 | 22 | libroinfo(){ 23 | return(`El titulo del libro es ${this.titulo}, 24 | El autor del libro es ${this.autor}, 25 | El año que se publico el libro ${this.anio}, 26 | El genero del libro ${this.genero}`); 27 | } 28 | } 29 | 30 | //Creo un array vacio para guardar los libros 31 | let librosArray = []; 32 | 33 | while(librosArray.length < 3){ 34 | let titulo = prompt('Introduce el titulo del libro'); 35 | let autor = prompt('Introduce el nombre del autor'); 36 | let anio = prompt('Introduce el año que se publico el libro'); 37 | let genero = prompt('Introduce el genero del libro'); 38 | 39 | if(titulo != '' && autor != '' && !isNaN(anio) && (genero == 'aventura'|| 40 | genero == 'terror' || genero == 'fantasia')){ 41 | //Aca agrego el libro al array 42 | librosArray.push(new libro(titulo, autor, anio, genero)) 43 | } 44 | } 45 | 46 | const mostrarlibros = ()=>{ 47 | console.log(librosArray); 48 | } 49 | 50 | mostrarlibros(); -------------------------------------------------------------------------------- /NodeJs/Ejercicio29/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio: Crear un servidor sin utilizar express. 3 | * Para realizar este ejercicio tengo que utilizar un modulo de NodeJs que 4 | * viene por defecto, este modulo es http me va a permitir realizar un servidor 5 | * sin la utilización de express. 6 | */ 7 | //Lo primero que tengo que realizar es importar el modulo http 8 | const http = require('http'); 9 | //Luego declaro una variable para asignarle el puerto de escucha del servidor 10 | const port = 5000; 11 | /** 12 | * Luego utilizo el modulo http para crear el servidor. Realizo 13 | * http.createServer() invoco la funcion createServer() que necesita pasarle 14 | * por parametro una peticion y una respuesta. Luego guardo todo en una 15 | * variable llamada server, la cual va ser mi servidor 16 | */ 17 | const server = http.createServer((Request, Response)=>{ 18 | //Aca realizo un filtrado de url, para que la respuesta no se muestre 19 | //en todas las url, sino en la que indique. 20 | if(Request.url === '/'){ 21 | /** 22 | * Le indico con un response.writeHead(), el codigo de respuesta 23 | * y luego le indico como respuesta le voy a enviar un codigo html. 24 | * */ 25 | Response.writeHead(200, {"Content-Type": "text/html"}); 26 | //Luego utilizo un respose.write() para escribir la respuesta al cliente 27 | Response.write('

Pagina de Inicio

'); 28 | //Por ultimo le envio la respuesta al cliente 29 | Response.end(); 30 | }else if(Request.url === '/contactos'){ 31 | Response.writeHead(200, {'Content-Type': 'text/html'}); 32 | Response.write('

Pagina de Contactos

'); 33 | Response.end(); 34 | }else{ 35 | //En caso, de realizar una peticion a una url que no exista 36 | Response.writeHead(404, {'Content-Type': 'text/html'}); 37 | Response.write('

Error 404

'); 38 | Response.end(); 39 | } 40 | }); 41 | 42 | server.listen(5000); 43 | console.log('El servidor está corriendo en el puerto 5000'); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej116.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 116 3 | Crear un documento con el nombre ej116.js 4 | Crear la función mejorJugadorArgentino que acepta como parámetro un número 5 | Esta función retorna el nombre de un jugador según el número de camiseta que 6 | utilizó en la selección del 86. 7 | 8 | Utilizar la siguiente lista de jugadores: 9 | 10 | 18 Nery Pumpido, 5 José Luis Brown, 9 José Cuciuffo, 19 Óscar Ruggeri, 11 | 14 Ricardo Giusti, 16 Julio Olarticoechea, 2 Sergio Batista, 12 | 12 Héctor Enrique, 7 Jorge Burruchaga, 10 Diego Armando Maradona, 13 | 11 Jorge Valdano. 14 | 15 | En caso de que se ingrese un número que no corresponde a un jugardor retornar el 16 | siguiente valor: 17 | 18 | Carlos Bilardo 19 | 20 | Mostrar en consola el número pasado como parámetro y el nombre del jugador retornado 21 | ejemplo: 22 | Si pasamos 10 como parámetro obtenemos Diego Armando Maradona como 23 | valor de retorno. Mostrar en consola: 10, Diego Armando Maradona 24 | */ 25 | const mejorJugadorArgentino = (numero) =>{ 26 | //console.log(typeof(numero)); 27 | if(typeof(numero) == 'number'){ 28 | switch(numero){ 29 | case 2: return '2, Sergio Batista'; break; 30 | case 5: return '5, José Luis Brown'; break; 31 | case 7: return '7, Jorge Burruchaga'; break; 32 | case 9: return '9, José Cuciuffo'; break; 33 | case 10: return '10, Diego Armando Maradona'; break; 34 | case 11: return '11, Jorge Valdano'; break; 35 | case 12: return '12, Héctor Enrique'; break; 36 | case 14: return '14, Ricardo Giusti'; break; 37 | case 16: return '16, Julio Olarticoechea'; break; 38 | case 18: return '18, Nery Pumpido'; break; 39 | case 19: return '19, Óscar Ruggeri'; break; 40 | default: return 'Carlos Bilardo';break; 41 | } 42 | } 43 | else{ 44 | return 'Volver a intentar....'; 45 | } 46 | } 47 | 48 | console.log(mejorJugadorArgentino(10)); 49 | console.log(mejorJugadorArgentino(2)); 50 | console.log(mejorJugadorArgentino(20)); -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej61.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 61 3 | Crear un documento con el nombre ej61.js. Escribir un programa donde se ingresa un 4 | número entre 1 y 7 que representa un día de la semana y se obtiene un mensaje como 5 | salida. En caso de ingresar un número que no sea válido mostrar un mensaje de error. 6 | 7 | Declarar la variable dia y asignar un número del 1 al 7. Declarar la variable 8 | nombreDelDia y asignar un valor null. Versión SWITCH, según el día seleccionado. 9 | Entonces asignar el nombre del día correspondiente al número en la variable 10 | nombreDelDia (ejemplo: si dia es 1 entonces nombreDelDia debería ser 'lunes') 11 | SINO Asignar el valor null en la variable nombreDelDía. Si nombreDelDía no es 12 | null. Entonces mostrar el siguiente mensaje en consola: El día seleccionado 13 | es ${nombreDelDía} SINO mostrar el siguiente mensaje en consola: Por favor 14 | seleccionar un número de 1 a 7. Versión IF/ELSE/IF, escribir la misma 15 | funcionalidad pero utilizando la estructura de If's anidados. El resultado debe 16 | ser el mismo. En ambos casos ingresar distintos números como valor de la 17 | variable dia y ver el resultado 18 | */ 19 | 20 | let dia = prompt('Ingrese un número entre del 1 al 7'); 21 | let nombreDelDia; 22 | if(dia >= 1 && dia <= 7){ 23 | nombreDelDia = prompt('Ingrese el dia de la semana'); 24 | switch(nombreDelDia){ 25 | case 'lunes': 26 | if(dia == 1){ 27 | document.write(`El dia ${dia} es ${nombreDelDia}`); 28 | }else{ 29 | document.write('Intente nuevamente'); 30 | } 31 | break; 32 | case 'martes': 33 | if(dia == 2){ 34 | document.write(`El dia ${dia} es ${nombreDelDia}`); 35 | }else{ 36 | document.write('Intente nuevamente'); 37 | } 38 | break; 39 | case 'miercoles': 40 | if(dia == 3){ 41 | document.write(`El dia ${dia} es ${nombreDelDia}`); 42 | }else{ 43 | document.write('Intente nuevamente'); 44 | } 45 | break; 46 | case 'jueves': 47 | if(dia == 4){ 48 | document.write(`El dia ${dia} es ${nombreDelDia}`); 49 | }else{ 50 | document.write('Intente nuevamente'); 51 | } 52 | break; 53 | case 'viernes': 54 | if(dia == 5){ 55 | document.write(`El dia ${dia} es ${nombreDelDia}`); 56 | }else{ 57 | document.write('Intente nuevamente'); 58 | } 59 | break; 60 | case 'sabado': 61 | if(dia == 6){ 62 | document.write(`El dia ${dia} es ${nombreDelDia}`); 63 | }else{ 64 | document.write('Intente nuevamente'); 65 | } 66 | break; 67 | case 'domingo': 68 | if(dia == 7){ 69 | document.write(`El dia ${dia} es ${nombreDelDia}`); 70 | }else{ 71 | document.write('Intente nuevamente'); 72 | } 73 | break; 74 | default: 75 | document.write(`Dia incorrecto`); 76 | break; 77 | } 78 | }else{ 79 | document.write('Error!!.. Ingresar un dia del 1 al 7') 80 | } 81 | -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej62.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 62 3 | Crear un documento con el nombre ej62.js. Escribir un programa donde se ingresa un 4 | número que representa el mes y se obtiene como salida un mensaje con el nombre del 5 | mes y la cantidad de días que tiene. 6 | 7 | Declarar la variable numeroDeMes y asignar un valor entre 1 y 12. Declarar 8 | la variable nombreDelMes y asignar un valor null. Declarar la variable 9 | cantidadDeDias y asignar un valor null. Según el número del mes entonces asignar 10 | el nombre del mes correspondiente en la variable nombreDelMes, asignar la cantidad 11 | de días que le corresponende al mes seleccionado SINo asignar null a las variables 12 | nombreDelMes y cantidadDeDias. Si nombreDelMes Y cantidadDeDiasson null. 13 | Entonces mostrar un mensaje de error: Ingrese un número entre 1 y 12 14 | SINO, mostrar el siguiente mensaje: El mes seleccionado es ${nombreDelMes} y 15 | tiene ${cantidadDeDias} de días. Utilizar la siguiente lista de datos 16 | para resolver el ejercicio: 17 | 18 | Enero 31 días 19 | Febrero 28/29 días 20 | Marzo 31 días 21 | Abril 30 días 22 | Mayo 31 días 23 | Junio 30 días 24 | Julio 31 días 25 | Agosto 31 días 26 | Septiembre 30 días 27 | Octubre 31 días 28 | Noviembre 30 días 29 | Diciembre 31 días 30 | */ 31 | 32 | let numeroDeMes, nombreDelMes, cantidadDeDias; 33 | 34 | numeroDeMes = prompt('Ingrese el número del meses: '); 35 | if(numeroDeMes >= 1 && numeroDeMes <= 12){ 36 | nombreDelMes = prompt('Ingrese el nombre del mes'); 37 | switch(nombreDelMes){ 38 | case 'enero': 39 | numeroDeMes == 1 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 40 | break; 41 | case 'febrero': 42 | numeroDeMes == 2 ? document.write(`${nombreDelMes} 28 días`) : document.write('Volver a intentar'); 43 | break; 44 | case 'marzo': 45 | numeroDeMes == 3 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 46 | break; 47 | case 'abril': 48 | numeroDeMes == 4 ? document.write(`${nombreDelMes} 30 días`) : document.write('Volver a intentar'); 49 | break; 50 | case 'mayo': 51 | numeroDeMes == 5 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 52 | break; 53 | case 'junio': 54 | numeroDeMes == 6 ? document.write(`${nombreDelMes} 30 días`) : document.write('Volver a intentar'); 55 | break; 56 | case 'julio': 57 | numeroDeMes == 7 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 58 | break; 59 | case 'agosto': 60 | numeroDeMes == 8 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 61 | break; 62 | case 'septiembre': 63 | numeroDeMes == 9 ? document.write(`${nombreDelMes} 30 días`) : document.write('Volver a intentar'); 64 | break; 65 | case 'octubre': 66 | numeroDeMes == 10 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 67 | break; 68 | case 'noviembre': 69 | numeroDeMes == 11 ? document.write(`${nombreDelMes} 30 días`) : document.write('Volver a intentar'); 70 | break; 71 | case 'diciembre': 72 | numeroDeMes == 12 ? document.write(`${nombreDelMes} 31 días`) : document.write('Volver a intentar'); 73 | break; 74 | default: 75 | document.write('Error!!...'); 76 | break; 77 | } 78 | } 79 | else{ 80 | document.write('Intente de nuevo....'); 81 | } -------------------------------------------------------------------------------- /JavaScript/JavaScript/ej63.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Ejercicio 63 3 | Crear un documento con el nombre ej63.js 4 | Escribir un programa que acepta como ingreso un número que representa un 5 | año (por ejemplo 2000) y muestra como salida el nombre del campéon de ese 6 | año del fútbol argentino. Los datos se pueden obtener desde el siguiente sitio: 7 | http://www.afa.org.ar/institucional/campeones-primera-division.php 8 | 9 | Utilizar sólo los últimos años (desde 2000 hasta el 2017) 10 | En caso de tener más de un campéon por año mostrar los distintos 11 | campeonatos en una sola variable. Según el año seleccionado Entonces 12 | Mostrar el siguiente mensaje: En el año ${anio} salió campeón: ${campeon} 13 | SINO 14 | Mostrar un mensaje con el siguiente error: Por favor ingrese un año 15 | entre 2000 y 2017. Datos en caso de que no funcione el link: 16 | 17 | 2000 (Clausura) River Plate (Apertura) Boca Juniors 18 | 2001 (Clausura) San Lorenzo de Almagro (Apertura) Racing Club 19 | 2002 (Clausura) River Plate (Apertura) Independiente 20 | 2003 (Clausura) River Plate (Apertura) Boca Juniors 21 | 2004 (Clausura) River Plate (Apertura) Newell´s Old Boys 22 | 2005 (Clausura) Vélez Sarsfield (Apertura) Boca Juniors 23 | 2006 (Clausura) Boca Juniors (Apertura) Estudiantes de La Plata 24 | 2007 (Clausura) San Lorenzo de Almagro (Apertura) Lanús 25 | 2008 (Clausura) River Plate (Apertura) Boca Juniors 26 | 2009 (Clausura) Vélez Sársfield (Apertura) Bánfield 27 | 2010 (Clausura) Argentinos Juniors (Apertura) Estudiantes de La Plata 28 | 2011 (Clausura) Vélez Sársfield (Apertura) Boca Juniors 29 | 2012 (Clausura) Arsenal F.C. (Torneo Inicial) Vélez Sarsfield 30 | 2013 (Torneo Final) Newells Old Boys (Campeón del Campeonato de Primera División 2012/13) 31 | Vélez Sarsfield (Torno Inicial) San Lorenzo de Almagro 32 | 2014 (Torneo Final) River Plate (Torneo Inicial) Racing Club 33 | 2015 (Campeonato de Primera División) Boca Juniors 34 | 2016 (Campeonato de Primera División) Lanús 35 | 2017 (Campeón del Campeonato de Primera División 2016/17) Boca Juniors 36 | */ 37 | let anio = parseInt(prompt('Ingresar un año entre 2000 y 2017 que deseas saber quien salio campeón: ')); 38 | let campeonArray; 39 | campeonArray = ['2000 (Clausura) River Plate (Apertura) Boca Juniors', 40 | '2001 (Clausura) San Lorenzo de Almagro (Apertura) Racing Club', 41 | '2002 (Clausura) River Plate (Apertura) Independiente', 42 | '2003 (Clausura) River Plate (Apertura) Boca Juniors', 43 | '2004 (Clausura) River Plate (Apertura) Newell´s Old Boys', 44 | '2005 (Clausura) Vélez Sarsfield (Apertura) Boca Juniors', 45 | '2006 (Clausura) Boca Juniors (Apertura) Estudiantes de La Plata', 46 | '2007 (Clausura) San Lorenzo de Almagro (Apertura) Lanús', 47 | '2008 (Clausura) River Plate (Apertura) Boca Juniors', 48 | '2009 (Clausura) Vélez Sársfield (Apertura) Bánfield', 49 | '2010 (Clausura) Argentinos Juniors (Apertura) Estudiantes de La Plata', 50 | '2011 (Clausura) Vélez Sársfield (Apertura) Boca Juniors', 51 | '2012 (Clausura) Arsenal F.C. (Torneo Inicial) Vélez Sarsfield', 52 | '2013 (Torneo Final) Newells Old Boys (Campeón del Campeonato de Primera División 2012/13) Vélez Sarsfield (Torno Inicial) San Lorenzo de Almagro', 53 | '2014 (Torneo Final) River Plate (Torneo Inicial) Racing Club', 54 | '2015 (Campeonato de Primera División) Boca Juniors', 55 | '2016 (Campeonato de Primera División) Lanús', 56 | '2017 (Campeón del Campeonato de Primera División 2016/17) Boca Juniors', 57 | ]; 58 | 59 | if(anio >= 2000 && anio <= 2017){ 60 | switch(anio){ 61 | //En el año ${anio} salió campeón: ${campeon} 62 | case 2000: document.write(`En el año ${anio} salió campeón: ${campeonArray[0]}`);break; 63 | case 2001: document.write(`En el año ${anio} salió campeón: ${campeonArray[1]}`);break; 64 | case 2002: document.write(`En el año ${anio} salió campeón: ${campeonArray[2]}`);break; 65 | case 2003: document.write(`En el año ${anio} salió campeón: ${campeonArray[3]}`);break; 66 | case 2004: document.write(`En el año ${anio} salió campeón: ${campeonArray[4]}`);break; 67 | case 2005: document.write(`En el año ${anio} salió campeón: ${campeonArray[5]}`);break; 68 | case 2006: document.write(`En el año ${anio} salió campeón: ${campeonArray[6]}`);break; 69 | case 2007: document.write(`En el año ${anio} salió campeón: ${campeonArray[7]}`);break; 70 | case 2008: document.write(`En el año ${anio} salió campeón: ${campeonArray[8]}`);break; 71 | case 2009: document.write(`En el año ${anio} salió campeón: ${campeonArray[9]}`);break; 72 | case 2010: document.write(`En el año ${anio} salió campeón: ${campeonArray[10]}`);break; 73 | case 2011: document.write(`En el año ${anio} salió campeón: ${campeonArray[11]}`);break; 74 | case 2012: document.write(`En el año ${anio} salió campeón: ${campeonArray[12]}`);break; 75 | case 2013: document.write(`En el año ${anio} salió campeón: ${campeonArray[13]}`);break; 76 | case 2014: document.write(`En el año ${anio} salió campeón: ${campeonArray[14]}`);break; 77 | case 2015: document.write(`En el año ${anio} salió campeón: ${campeonArray[15]}`);break; 78 | case 2016: document.write(`En el año ${anio} salió campeón: ${campeonArray[16]}`);break; 79 | case 2017: document.write(`En el año ${anio} salió campeón: ${campeonArray[17]}`);break; 80 | default: 81 | document.write('Volver a intentar'); 82 | break; 83 | } 84 | }else{ 85 | document.write('Por favor ingrese un año entre 2000 y 2017'); 86 | } -------------------------------------------------------------------------------- /MongoDB/sesiones-mongo-hbs/server.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const bodyParser = require('body-parser'); 3 | const path = require('path'); 4 | const expressSession = require('express-session'); 5 | const expressHandlebars = require('express-handlebars'); 6 | const MongoClient = require('mongodb').MongoClient; 7 | 8 | // Configuraciones de acceso a base testdb en MongoDB 9 | const db = { 10 | url: 'mongodb://localhost:27017/', 11 | config: { 12 | useNewUrlParser: true, 13 | useUnifiedTopology: true, 14 | family: 4 15 | }, 16 | nombre: 'testdb', 17 | nombreColeccionUsuarios: 'users' 18 | } 19 | 20 | // Objeto para servidor Express 21 | const app = express(); 22 | 23 | // Configuración de Handlebars 24 | app.engine('handlebars', expressHandlebars({ 25 | defaultLayout: 'main', 26 | layoutsDir: path.join(__dirname, 'views/layout') 27 | })); 28 | app.set('view engine', 'handlebars') 29 | app.set('views', path.join(__dirname, 'views')); 30 | 31 | 32 | // Configuración de sesiones 33 | app.use(expressSession({ 34 | secret: 'el tiempo sin ti es empo', 35 | resave: false, 36 | saveUninitialized: false 37 | })); 38 | 39 | // Middleware de body-parser para interpretar datos recibidos de un form 40 | app.use(bodyParser.urlencoded({ extended: true })); 41 | 42 | // Ruta para recursos estáticos (css, js, ico, etc., requeridos desde el browser) 43 | app.use(express.static(path.join(__dirname, 'public'))); 44 | 45 | 46 | // GET / 47 | app.get('/', (req, res) => { 48 | console.log("GET /"); 49 | if (req.session.usuarix) { 50 | res.render('home', { nombre: req.session.usuarix }) 51 | } else { 52 | res.render('login'); 53 | } 54 | }); 55 | 56 | 57 | // POST /login 58 | app.post('/login', (req, res) => { 59 | 60 | console.log('POST /login', 'body:', req.body); 61 | 62 | // Valido que se hayan recibido los datos de usuario y clave 63 | if (req.body.usuarix && req.body.password) { 64 | 65 | // Llamo a la función que valida usuario y clave 66 | validarUsuarix(req.body.usuarix, req.body.password, resultado => { 67 | 68 | if (resultado) { 69 | // Si validó bien, guardo la sesión y voy al home 70 | req.session.usuarix = req.body.usuarix; 71 | res.render('home', { nombre: req.session.usuarix }); 72 | } else { 73 | // Si validó mal, destruyo la sesión (por si la hubiera) y recargo página inicial 74 | req.session.destroy(); 75 | res.render('login', { mensaje: 'Usuarix/clave incorrectxs.', tipo: 'error' }) 76 | } 77 | 78 | }); 79 | 80 | } else { 81 | // Lo mismo si el usuarix o clave no fueron enviados 82 | req.session.destroy(); 83 | res.render('login', { mensaje: 'Ingrese usuarix y clave', tipo: 'error' }); 84 | } 85 | 86 | }); 87 | 88 | 89 | // GET /registrar 90 | // Retorna la vista de registro 91 | app.get('/registrarse', (req, res) => { 92 | console.log("GET /registrarse"); 93 | res.render('registro'); 94 | }); 95 | 96 | 97 | // POST /registrar 98 | // Procesa información del formulario de registro 99 | app.post('/registrar', (req, res) => { 100 | 101 | console.log('POST /registrar', 'body:', req.body); 102 | 103 | // Verifico que estén todos los datos 104 | if (req.body.usuarix && req.body.password && req.body.passwordRep) { 105 | 106 | // Verifico que la clave y su repetición coincidan 107 | if (req.body.password == req.body.passwordRep) { 108 | 109 | // Se llama a la función que guarde el registro 110 | registrarUsuarix(req.body.usuarix, req.body.password, resultado => { 111 | console.log(`Registro exitoso: ${resultado}`); 112 | if (resultado) { 113 | // Si guardó bien usuarix nuevx, redirijo al login 114 | req.session.destroy(); 115 | res.render('login', { mensaje: 'Usuarix registrado correctamente', tipo: 'exito' }); 116 | } else { 117 | // Si validó mal, destruyo la sesión (por si la hubiera) y recargo página de registro 118 | req.session.destroy(); 119 | res.render('registro', { mensaje: 'Datos incompletos', tipo: 'error' }); 120 | } 121 | }); 122 | 123 | } else { 124 | 125 | // Si las claves no coinciden, se retorna la vista de registro y se indica el mensaje 126 | // correspondiente. 127 | req.session.destroy(); 128 | res.render('registro', { mensaje: 'Las claves ingresadas no coinciden.', tipo: 'error' }); 129 | 130 | } 131 | 132 | } else { 133 | 134 | // Si faltó algún dato, reenvío vista de registro con el mensaje 135 | req.session.destroy(); 136 | res.render('registro', { 137 | mensaje: 'Debe completar el formulario para registrarse.', 138 | tipo: 'error' 139 | }); 140 | 141 | } 142 | 143 | }); 144 | 145 | 146 | // GET logout 147 | app.get('/logout', (req, res) => { 148 | 149 | console.log("GET /logout"); 150 | 151 | // Destruyo sesión y redirijo al login. 152 | req.session.destroy(); 153 | res.render('login'); 154 | 155 | }); 156 | 157 | 158 | // Server iniciado en puerto 3000 159 | app.listen(3000, () => { 160 | console.log('Escuchando puerto 3000 con Express'); 161 | }); 162 | 163 | 164 | /** 165 | * Valida usuarix/clave contra la lista de usuarixs registradxs (que en este 166 | * ejemplo es un array en memoria, debería ser base de datos) 167 | * 168 | * @param {string} usr Usuarix 169 | * @param {string} pwd Clave 170 | * @param {function} callback Función de callback, se le pasa true o false 171 | */ 172 | function validarUsuarix(usr, pwd, callback) { 173 | 174 | // Me conecto al servidor de Mongo 175 | MongoClient.connect(db.url, db.config, (err, client) => { 176 | 177 | // Si no hubo error... 178 | if (!err) { 179 | 180 | // Apunto a la base y colección donde están los datos de usuarixs 181 | const colUsuarixs = client.db(db.nombre).collection(db.nombreColeccionUsuarios); 182 | 183 | // Busco un documento en la colección que tenga "user" y "pass" con los valores recibidos 184 | // por query string. Si usuario y clave son correctos, esa consulta tiene que devolver un 185 | // elemento, en caso contrario tiene que volver vacía. 186 | colUsuarixs.findOne({ user: usr, pass: pwd }, (err, resConsulta) => { 187 | 188 | // Hecha la búsqueda, cierro la conexión 189 | client.close(); 190 | 191 | // Salida por consola del resultado para control 192 | console.log(resConsulta); 193 | 194 | // Si no hubo error... 195 | if (!err) { 196 | 197 | // Si el documento respondido contiene algo, no necesito validar nada: ya sé que 198 | // usuario y clave estaban bien. Caso contrario, alguno de los dos datos estaba mal. 199 | if (resConsulta) { 200 | callback(true); 201 | } else { 202 | callback(false); 203 | } 204 | 205 | } else { 206 | // Si hubo error de consulta, respondemos un false 207 | callback(false); 208 | } 209 | }); 210 | 211 | } else { 212 | // Si hubo error de conexión a Mongo, respondemos false 213 | callback(false); 214 | } 215 | 216 | }); 217 | 218 | } 219 | 220 | 221 | /** 222 | * Registra usuarix nuevo en la lista de usuarixs (que en este 223 | * ejemplo es un array en memoria, debería ser base de datos) 224 | * 225 | * @param {string} usr Usuarix 226 | * @param {string} pwd Clave 227 | * @param {function} callback Función de callback, se le pasa true o false 228 | */ 229 | function registrarUsuarix(usr, pwd, callback) { 230 | 231 | // Me conecto a Mongo 232 | MongoClient.connect(db.url, db.config, (err, client) => { 233 | 234 | if (!err) { 235 | 236 | // Base de datos/colección de usuarixs 237 | const colUsuarixs = client.db(db.nombre).collection(db.nombreColeccionUsuarios); 238 | 239 | // Inserto un nuevo documento con user/pass. 240 | colUsuarixs.insertOne({ user: usr, pass: pwd }, (err, result) => { 241 | 242 | // Si no hubo error, respondo true. Si hubo error, false. 243 | if (!err) { 244 | callback(true); 245 | } else { 246 | callback(false); 247 | } 248 | 249 | }); 250 | 251 | } else { 252 | // Si no se pudo conectar al servidor, respondo false. 253 | callback(false); 254 | } 255 | 256 | }); 257 | 258 | } -------------------------------------------------------------------------------- /NodeJs/Ejercicio2/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio2", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.7", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 11 | "requires": { 12 | "mime-types": "~2.1.24", 13 | "negotiator": "0.6.2" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "body-parser": { 22 | "version": "1.19.0", 23 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 24 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 25 | "requires": { 26 | "bytes": "3.1.0", 27 | "content-type": "~1.0.4", 28 | "debug": "2.6.9", 29 | "depd": "~1.1.2", 30 | "http-errors": "1.7.2", 31 | "iconv-lite": "0.4.24", 32 | "on-finished": "~2.3.0", 33 | "qs": "6.7.0", 34 | "raw-body": "2.4.0", 35 | "type-is": "~1.6.17" 36 | } 37 | }, 38 | "bytes": { 39 | "version": "3.1.0", 40 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 41 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 42 | }, 43 | "content-disposition": { 44 | "version": "0.5.3", 45 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 46 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 47 | "requires": { 48 | "safe-buffer": "5.1.2" 49 | } 50 | }, 51 | "content-type": { 52 | "version": "1.0.4", 53 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 54 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 55 | }, 56 | "cookie": { 57 | "version": "0.4.0", 58 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 59 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 60 | }, 61 | "cookie-signature": { 62 | "version": "1.0.6", 63 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 64 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 65 | }, 66 | "debug": { 67 | "version": "2.6.9", 68 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 69 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 70 | "requires": { 71 | "ms": "2.0.0" 72 | } 73 | }, 74 | "depd": { 75 | "version": "1.1.2", 76 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 77 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 78 | }, 79 | "destroy": { 80 | "version": "1.0.4", 81 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 82 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 83 | }, 84 | "ee-first": { 85 | "version": "1.1.1", 86 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 87 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 88 | }, 89 | "encodeurl": { 90 | "version": "1.0.2", 91 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 92 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 93 | }, 94 | "escape-html": { 95 | "version": "1.0.3", 96 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 97 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 98 | }, 99 | "etag": { 100 | "version": "1.8.1", 101 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 102 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 103 | }, 104 | "express": { 105 | "version": "4.17.1", 106 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 107 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 108 | "requires": { 109 | "accepts": "~1.3.7", 110 | "array-flatten": "1.1.1", 111 | "body-parser": "1.19.0", 112 | "content-disposition": "0.5.3", 113 | "content-type": "~1.0.4", 114 | "cookie": "0.4.0", 115 | "cookie-signature": "1.0.6", 116 | "debug": "2.6.9", 117 | "depd": "~1.1.2", 118 | "encodeurl": "~1.0.2", 119 | "escape-html": "~1.0.3", 120 | "etag": "~1.8.1", 121 | "finalhandler": "~1.1.2", 122 | "fresh": "0.5.2", 123 | "merge-descriptors": "1.0.1", 124 | "methods": "~1.1.2", 125 | "on-finished": "~2.3.0", 126 | "parseurl": "~1.3.3", 127 | "path-to-regexp": "0.1.7", 128 | "proxy-addr": "~2.0.5", 129 | "qs": "6.7.0", 130 | "range-parser": "~1.2.1", 131 | "safe-buffer": "5.1.2", 132 | "send": "0.17.1", 133 | "serve-static": "1.14.1", 134 | "setprototypeof": "1.1.1", 135 | "statuses": "~1.5.0", 136 | "type-is": "~1.6.18", 137 | "utils-merge": "1.0.1", 138 | "vary": "~1.1.2" 139 | } 140 | }, 141 | "finalhandler": { 142 | "version": "1.1.2", 143 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 144 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 145 | "requires": { 146 | "debug": "2.6.9", 147 | "encodeurl": "~1.0.2", 148 | "escape-html": "~1.0.3", 149 | "on-finished": "~2.3.0", 150 | "parseurl": "~1.3.3", 151 | "statuses": "~1.5.0", 152 | "unpipe": "~1.0.0" 153 | } 154 | }, 155 | "forwarded": { 156 | "version": "0.1.2", 157 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 158 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 159 | }, 160 | "fresh": { 161 | "version": "0.5.2", 162 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 163 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 164 | }, 165 | "http-errors": { 166 | "version": "1.7.2", 167 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 168 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 169 | "requires": { 170 | "depd": "~1.1.2", 171 | "inherits": "2.0.3", 172 | "setprototypeof": "1.1.1", 173 | "statuses": ">= 1.5.0 < 2", 174 | "toidentifier": "1.0.0" 175 | } 176 | }, 177 | "iconv-lite": { 178 | "version": "0.4.24", 179 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 180 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 181 | "requires": { 182 | "safer-buffer": ">= 2.1.2 < 3" 183 | } 184 | }, 185 | "inherits": { 186 | "version": "2.0.3", 187 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 188 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 189 | }, 190 | "ipaddr.js": { 191 | "version": "1.9.0", 192 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", 193 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" 194 | }, 195 | "media-typer": { 196 | "version": "0.3.0", 197 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 198 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 199 | }, 200 | "merge-descriptors": { 201 | "version": "1.0.1", 202 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 203 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 204 | }, 205 | "methods": { 206 | "version": "1.1.2", 207 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 208 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 209 | }, 210 | "mime": { 211 | "version": "1.6.0", 212 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 213 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 214 | }, 215 | "mime-db": { 216 | "version": "1.43.0", 217 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", 218 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" 219 | }, 220 | "mime-types": { 221 | "version": "2.1.26", 222 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", 223 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", 224 | "requires": { 225 | "mime-db": "1.43.0" 226 | } 227 | }, 228 | "ms": { 229 | "version": "2.0.0", 230 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 231 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 232 | }, 233 | "negotiator": { 234 | "version": "0.6.2", 235 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 236 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 237 | }, 238 | "on-finished": { 239 | "version": "2.3.0", 240 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 241 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 242 | "requires": { 243 | "ee-first": "1.1.1" 244 | } 245 | }, 246 | "parseurl": { 247 | "version": "1.3.3", 248 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 249 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 250 | }, 251 | "path-to-regexp": { 252 | "version": "0.1.7", 253 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 254 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 255 | }, 256 | "proxy-addr": { 257 | "version": "2.0.5", 258 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", 259 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", 260 | "requires": { 261 | "forwarded": "~0.1.2", 262 | "ipaddr.js": "1.9.0" 263 | } 264 | }, 265 | "qs": { 266 | "version": "6.7.0", 267 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 268 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 269 | }, 270 | "range-parser": { 271 | "version": "1.2.1", 272 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 273 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 274 | }, 275 | "raw-body": { 276 | "version": "2.4.0", 277 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 278 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 279 | "requires": { 280 | "bytes": "3.1.0", 281 | "http-errors": "1.7.2", 282 | "iconv-lite": "0.4.24", 283 | "unpipe": "1.0.0" 284 | } 285 | }, 286 | "safe-buffer": { 287 | "version": "5.1.2", 288 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 289 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 290 | }, 291 | "safer-buffer": { 292 | "version": "2.1.2", 293 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 294 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 295 | }, 296 | "send": { 297 | "version": "0.17.1", 298 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 299 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 300 | "requires": { 301 | "debug": "2.6.9", 302 | "depd": "~1.1.2", 303 | "destroy": "~1.0.4", 304 | "encodeurl": "~1.0.2", 305 | "escape-html": "~1.0.3", 306 | "etag": "~1.8.1", 307 | "fresh": "0.5.2", 308 | "http-errors": "~1.7.2", 309 | "mime": "1.6.0", 310 | "ms": "2.1.1", 311 | "on-finished": "~2.3.0", 312 | "range-parser": "~1.2.1", 313 | "statuses": "~1.5.0" 314 | }, 315 | "dependencies": { 316 | "ms": { 317 | "version": "2.1.1", 318 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 319 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 320 | } 321 | } 322 | }, 323 | "serve-static": { 324 | "version": "1.14.1", 325 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 326 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 327 | "requires": { 328 | "encodeurl": "~1.0.2", 329 | "escape-html": "~1.0.3", 330 | "parseurl": "~1.3.3", 331 | "send": "0.17.1" 332 | } 333 | }, 334 | "setprototypeof": { 335 | "version": "1.1.1", 336 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 337 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 338 | }, 339 | "statuses": { 340 | "version": "1.5.0", 341 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 342 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 343 | }, 344 | "toidentifier": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 347 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 348 | }, 349 | "type-is": { 350 | "version": "1.6.18", 351 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 352 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 353 | "requires": { 354 | "media-typer": "0.3.0", 355 | "mime-types": "~2.1.24" 356 | } 357 | }, 358 | "unpipe": { 359 | "version": "1.0.0", 360 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 361 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 362 | }, 363 | "utils-merge": { 364 | "version": "1.0.1", 365 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 366 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 367 | }, 368 | "vary": { 369 | "version": "1.1.2", 370 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 371 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 372 | } 373 | } 374 | } 375 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio9/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio9", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.7", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 11 | "requires": { 12 | "mime-types": "~2.1.24", 13 | "negotiator": "0.6.2" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "body-parser": { 22 | "version": "1.19.0", 23 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 24 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 25 | "requires": { 26 | "bytes": "3.1.0", 27 | "content-type": "~1.0.4", 28 | "debug": "2.6.9", 29 | "depd": "~1.1.2", 30 | "http-errors": "1.7.2", 31 | "iconv-lite": "0.4.24", 32 | "on-finished": "~2.3.0", 33 | "qs": "6.7.0", 34 | "raw-body": "2.4.0", 35 | "type-is": "~1.6.17" 36 | } 37 | }, 38 | "bytes": { 39 | "version": "3.1.0", 40 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 41 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 42 | }, 43 | "content-disposition": { 44 | "version": "0.5.3", 45 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 46 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 47 | "requires": { 48 | "safe-buffer": "5.1.2" 49 | } 50 | }, 51 | "content-type": { 52 | "version": "1.0.4", 53 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 54 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 55 | }, 56 | "cookie": { 57 | "version": "0.4.0", 58 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 59 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 60 | }, 61 | "cookie-signature": { 62 | "version": "1.0.6", 63 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 64 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 65 | }, 66 | "debug": { 67 | "version": "2.6.9", 68 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 69 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 70 | "requires": { 71 | "ms": "2.0.0" 72 | } 73 | }, 74 | "depd": { 75 | "version": "1.1.2", 76 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 77 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 78 | }, 79 | "destroy": { 80 | "version": "1.0.4", 81 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 82 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 83 | }, 84 | "ee-first": { 85 | "version": "1.1.1", 86 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 87 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 88 | }, 89 | "encodeurl": { 90 | "version": "1.0.2", 91 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 92 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 93 | }, 94 | "escape-html": { 95 | "version": "1.0.3", 96 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 97 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 98 | }, 99 | "etag": { 100 | "version": "1.8.1", 101 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 102 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 103 | }, 104 | "express": { 105 | "version": "4.17.1", 106 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 107 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 108 | "requires": { 109 | "accepts": "~1.3.7", 110 | "array-flatten": "1.1.1", 111 | "body-parser": "1.19.0", 112 | "content-disposition": "0.5.3", 113 | "content-type": "~1.0.4", 114 | "cookie": "0.4.0", 115 | "cookie-signature": "1.0.6", 116 | "debug": "2.6.9", 117 | "depd": "~1.1.2", 118 | "encodeurl": "~1.0.2", 119 | "escape-html": "~1.0.3", 120 | "etag": "~1.8.1", 121 | "finalhandler": "~1.1.2", 122 | "fresh": "0.5.2", 123 | "merge-descriptors": "1.0.1", 124 | "methods": "~1.1.2", 125 | "on-finished": "~2.3.0", 126 | "parseurl": "~1.3.3", 127 | "path-to-regexp": "0.1.7", 128 | "proxy-addr": "~2.0.5", 129 | "qs": "6.7.0", 130 | "range-parser": "~1.2.1", 131 | "safe-buffer": "5.1.2", 132 | "send": "0.17.1", 133 | "serve-static": "1.14.1", 134 | "setprototypeof": "1.1.1", 135 | "statuses": "~1.5.0", 136 | "type-is": "~1.6.18", 137 | "utils-merge": "1.0.1", 138 | "vary": "~1.1.2" 139 | } 140 | }, 141 | "finalhandler": { 142 | "version": "1.1.2", 143 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 144 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 145 | "requires": { 146 | "debug": "2.6.9", 147 | "encodeurl": "~1.0.2", 148 | "escape-html": "~1.0.3", 149 | "on-finished": "~2.3.0", 150 | "parseurl": "~1.3.3", 151 | "statuses": "~1.5.0", 152 | "unpipe": "~1.0.0" 153 | } 154 | }, 155 | "forwarded": { 156 | "version": "0.1.2", 157 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 158 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 159 | }, 160 | "fresh": { 161 | "version": "0.5.2", 162 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 163 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 164 | }, 165 | "http-errors": { 166 | "version": "1.7.2", 167 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 168 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 169 | "requires": { 170 | "depd": "~1.1.2", 171 | "inherits": "2.0.3", 172 | "setprototypeof": "1.1.1", 173 | "statuses": ">= 1.5.0 < 2", 174 | "toidentifier": "1.0.0" 175 | } 176 | }, 177 | "iconv-lite": { 178 | "version": "0.4.24", 179 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 180 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 181 | "requires": { 182 | "safer-buffer": ">= 2.1.2 < 3" 183 | } 184 | }, 185 | "inherits": { 186 | "version": "2.0.3", 187 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 188 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 189 | }, 190 | "ipaddr.js": { 191 | "version": "1.9.0", 192 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", 193 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" 194 | }, 195 | "media-typer": { 196 | "version": "0.3.0", 197 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 198 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 199 | }, 200 | "merge-descriptors": { 201 | "version": "1.0.1", 202 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 203 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 204 | }, 205 | "methods": { 206 | "version": "1.1.2", 207 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 208 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 209 | }, 210 | "mime": { 211 | "version": "1.6.0", 212 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 213 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 214 | }, 215 | "mime-db": { 216 | "version": "1.43.0", 217 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", 218 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" 219 | }, 220 | "mime-types": { 221 | "version": "2.1.26", 222 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", 223 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", 224 | "requires": { 225 | "mime-db": "1.43.0" 226 | } 227 | }, 228 | "ms": { 229 | "version": "2.0.0", 230 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 231 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 232 | }, 233 | "negotiator": { 234 | "version": "0.6.2", 235 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 236 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 237 | }, 238 | "on-finished": { 239 | "version": "2.3.0", 240 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 241 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 242 | "requires": { 243 | "ee-first": "1.1.1" 244 | } 245 | }, 246 | "parseurl": { 247 | "version": "1.3.3", 248 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 249 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 250 | }, 251 | "path-to-regexp": { 252 | "version": "0.1.7", 253 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 254 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 255 | }, 256 | "proxy-addr": { 257 | "version": "2.0.5", 258 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", 259 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", 260 | "requires": { 261 | "forwarded": "~0.1.2", 262 | "ipaddr.js": "1.9.0" 263 | } 264 | }, 265 | "qs": { 266 | "version": "6.7.0", 267 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 268 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 269 | }, 270 | "range-parser": { 271 | "version": "1.2.1", 272 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 273 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 274 | }, 275 | "raw-body": { 276 | "version": "2.4.0", 277 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 278 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 279 | "requires": { 280 | "bytes": "3.1.0", 281 | "http-errors": "1.7.2", 282 | "iconv-lite": "0.4.24", 283 | "unpipe": "1.0.0" 284 | } 285 | }, 286 | "safe-buffer": { 287 | "version": "5.1.2", 288 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 289 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 290 | }, 291 | "safer-buffer": { 292 | "version": "2.1.2", 293 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 294 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 295 | }, 296 | "send": { 297 | "version": "0.17.1", 298 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 299 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 300 | "requires": { 301 | "debug": "2.6.9", 302 | "depd": "~1.1.2", 303 | "destroy": "~1.0.4", 304 | "encodeurl": "~1.0.2", 305 | "escape-html": "~1.0.3", 306 | "etag": "~1.8.1", 307 | "fresh": "0.5.2", 308 | "http-errors": "~1.7.2", 309 | "mime": "1.6.0", 310 | "ms": "2.1.1", 311 | "on-finished": "~2.3.0", 312 | "range-parser": "~1.2.1", 313 | "statuses": "~1.5.0" 314 | }, 315 | "dependencies": { 316 | "ms": { 317 | "version": "2.1.1", 318 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 319 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 320 | } 321 | } 322 | }, 323 | "serve-static": { 324 | "version": "1.14.1", 325 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 326 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 327 | "requires": { 328 | "encodeurl": "~1.0.2", 329 | "escape-html": "~1.0.3", 330 | "parseurl": "~1.3.3", 331 | "send": "0.17.1" 332 | } 333 | }, 334 | "setprototypeof": { 335 | "version": "1.1.1", 336 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 337 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 338 | }, 339 | "statuses": { 340 | "version": "1.5.0", 341 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 342 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 343 | }, 344 | "toidentifier": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 347 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 348 | }, 349 | "type-is": { 350 | "version": "1.6.18", 351 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 352 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 353 | "requires": { 354 | "media-typer": "0.3.0", 355 | "mime-types": "~2.1.24" 356 | } 357 | }, 358 | "unpipe": { 359 | "version": "1.0.0", 360 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 361 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 362 | }, 363 | "utils-merge": { 364 | "version": "1.0.1", 365 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 366 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 367 | }, 368 | "vary": { 369 | "version": "1.1.2", 370 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 371 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 372 | } 373 | } 374 | } 375 | -------------------------------------------------------------------------------- /NodeJs/Ejercicio10/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ejercicio10", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.7", 9 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", 10 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", 11 | "requires": { 12 | "mime-types": "~2.1.24", 13 | "negotiator": "0.6.2" 14 | } 15 | }, 16 | "array-flatten": { 17 | "version": "1.1.1", 18 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", 19 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 20 | }, 21 | "body-parser": { 22 | "version": "1.19.0", 23 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", 24 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", 25 | "requires": { 26 | "bytes": "3.1.0", 27 | "content-type": "~1.0.4", 28 | "debug": "2.6.9", 29 | "depd": "~1.1.2", 30 | "http-errors": "1.7.2", 31 | "iconv-lite": "0.4.24", 32 | "on-finished": "~2.3.0", 33 | "qs": "6.7.0", 34 | "raw-body": "2.4.0", 35 | "type-is": "~1.6.17" 36 | } 37 | }, 38 | "bytes": { 39 | "version": "3.1.0", 40 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", 41 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" 42 | }, 43 | "content-disposition": { 44 | "version": "0.5.3", 45 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 46 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", 47 | "requires": { 48 | "safe-buffer": "5.1.2" 49 | } 50 | }, 51 | "content-type": { 52 | "version": "1.0.4", 53 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", 54 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" 55 | }, 56 | "cookie": { 57 | "version": "0.4.0", 58 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", 59 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" 60 | }, 61 | "cookie-signature": { 62 | "version": "1.0.6", 63 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", 64 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 65 | }, 66 | "debug": { 67 | "version": "2.6.9", 68 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", 69 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", 70 | "requires": { 71 | "ms": "2.0.0" 72 | } 73 | }, 74 | "depd": { 75 | "version": "1.1.2", 76 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", 77 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" 78 | }, 79 | "destroy": { 80 | "version": "1.0.4", 81 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 82 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 83 | }, 84 | "ee-first": { 85 | "version": "1.1.1", 86 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 87 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 88 | }, 89 | "encodeurl": { 90 | "version": "1.0.2", 91 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 92 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 93 | }, 94 | "escape-html": { 95 | "version": "1.0.3", 96 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 97 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 98 | }, 99 | "etag": { 100 | "version": "1.8.1", 101 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", 102 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 103 | }, 104 | "express": { 105 | "version": "4.17.1", 106 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", 107 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", 108 | "requires": { 109 | "accepts": "~1.3.7", 110 | "array-flatten": "1.1.1", 111 | "body-parser": "1.19.0", 112 | "content-disposition": "0.5.3", 113 | "content-type": "~1.0.4", 114 | "cookie": "0.4.0", 115 | "cookie-signature": "1.0.6", 116 | "debug": "2.6.9", 117 | "depd": "~1.1.2", 118 | "encodeurl": "~1.0.2", 119 | "escape-html": "~1.0.3", 120 | "etag": "~1.8.1", 121 | "finalhandler": "~1.1.2", 122 | "fresh": "0.5.2", 123 | "merge-descriptors": "1.0.1", 124 | "methods": "~1.1.2", 125 | "on-finished": "~2.3.0", 126 | "parseurl": "~1.3.3", 127 | "path-to-regexp": "0.1.7", 128 | "proxy-addr": "~2.0.5", 129 | "qs": "6.7.0", 130 | "range-parser": "~1.2.1", 131 | "safe-buffer": "5.1.2", 132 | "send": "0.17.1", 133 | "serve-static": "1.14.1", 134 | "setprototypeof": "1.1.1", 135 | "statuses": "~1.5.0", 136 | "type-is": "~1.6.18", 137 | "utils-merge": "1.0.1", 138 | "vary": "~1.1.2" 139 | } 140 | }, 141 | "finalhandler": { 142 | "version": "1.1.2", 143 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 144 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", 145 | "requires": { 146 | "debug": "2.6.9", 147 | "encodeurl": "~1.0.2", 148 | "escape-html": "~1.0.3", 149 | "on-finished": "~2.3.0", 150 | "parseurl": "~1.3.3", 151 | "statuses": "~1.5.0", 152 | "unpipe": "~1.0.0" 153 | } 154 | }, 155 | "forwarded": { 156 | "version": "0.1.2", 157 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", 158 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" 159 | }, 160 | "fresh": { 161 | "version": "0.5.2", 162 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 163 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 164 | }, 165 | "http-errors": { 166 | "version": "1.7.2", 167 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", 168 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", 169 | "requires": { 170 | "depd": "~1.1.2", 171 | "inherits": "2.0.3", 172 | "setprototypeof": "1.1.1", 173 | "statuses": ">= 1.5.0 < 2", 174 | "toidentifier": "1.0.0" 175 | } 176 | }, 177 | "iconv-lite": { 178 | "version": "0.4.24", 179 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 180 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 181 | "requires": { 182 | "safer-buffer": ">= 2.1.2 < 3" 183 | } 184 | }, 185 | "inherits": { 186 | "version": "2.0.3", 187 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 188 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 189 | }, 190 | "ipaddr.js": { 191 | "version": "1.9.0", 192 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", 193 | "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" 194 | }, 195 | "media-typer": { 196 | "version": "0.3.0", 197 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 198 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 199 | }, 200 | "merge-descriptors": { 201 | "version": "1.0.1", 202 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 203 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 204 | }, 205 | "methods": { 206 | "version": "1.1.2", 207 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", 208 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 209 | }, 210 | "mime": { 211 | "version": "1.6.0", 212 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", 213 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" 214 | }, 215 | "mime-db": { 216 | "version": "1.43.0", 217 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", 218 | "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" 219 | }, 220 | "mime-types": { 221 | "version": "2.1.26", 222 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", 223 | "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", 224 | "requires": { 225 | "mime-db": "1.43.0" 226 | } 227 | }, 228 | "ms": { 229 | "version": "2.0.0", 230 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 231 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 232 | }, 233 | "negotiator": { 234 | "version": "0.6.2", 235 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 236 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" 237 | }, 238 | "on-finished": { 239 | "version": "2.3.0", 240 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", 241 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 242 | "requires": { 243 | "ee-first": "1.1.1" 244 | } 245 | }, 246 | "parseurl": { 247 | "version": "1.3.3", 248 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 249 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 250 | }, 251 | "path-to-regexp": { 252 | "version": "0.1.7", 253 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 254 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 255 | }, 256 | "proxy-addr": { 257 | "version": "2.0.5", 258 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", 259 | "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", 260 | "requires": { 261 | "forwarded": "~0.1.2", 262 | "ipaddr.js": "1.9.0" 263 | } 264 | }, 265 | "qs": { 266 | "version": "6.7.0", 267 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 268 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" 269 | }, 270 | "range-parser": { 271 | "version": "1.2.1", 272 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", 273 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" 274 | }, 275 | "raw-body": { 276 | "version": "2.4.0", 277 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", 278 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", 279 | "requires": { 280 | "bytes": "3.1.0", 281 | "http-errors": "1.7.2", 282 | "iconv-lite": "0.4.24", 283 | "unpipe": "1.0.0" 284 | } 285 | }, 286 | "safe-buffer": { 287 | "version": "5.1.2", 288 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 289 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" 290 | }, 291 | "safer-buffer": { 292 | "version": "2.1.2", 293 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 294 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 295 | }, 296 | "send": { 297 | "version": "0.17.1", 298 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", 299 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", 300 | "requires": { 301 | "debug": "2.6.9", 302 | "depd": "~1.1.2", 303 | "destroy": "~1.0.4", 304 | "encodeurl": "~1.0.2", 305 | "escape-html": "~1.0.3", 306 | "etag": "~1.8.1", 307 | "fresh": "0.5.2", 308 | "http-errors": "~1.7.2", 309 | "mime": "1.6.0", 310 | "ms": "2.1.1", 311 | "on-finished": "~2.3.0", 312 | "range-parser": "~1.2.1", 313 | "statuses": "~1.5.0" 314 | }, 315 | "dependencies": { 316 | "ms": { 317 | "version": "2.1.1", 318 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 319 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" 320 | } 321 | } 322 | }, 323 | "serve-static": { 324 | "version": "1.14.1", 325 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", 326 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", 327 | "requires": { 328 | "encodeurl": "~1.0.2", 329 | "escape-html": "~1.0.3", 330 | "parseurl": "~1.3.3", 331 | "send": "0.17.1" 332 | } 333 | }, 334 | "setprototypeof": { 335 | "version": "1.1.1", 336 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 337 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 338 | }, 339 | "statuses": { 340 | "version": "1.5.0", 341 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 342 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 343 | }, 344 | "toidentifier": { 345 | "version": "1.0.0", 346 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 347 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" 348 | }, 349 | "type-is": { 350 | "version": "1.6.18", 351 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", 352 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", 353 | "requires": { 354 | "media-typer": "0.3.0", 355 | "mime-types": "~2.1.24" 356 | } 357 | }, 358 | "unpipe": { 359 | "version": "1.0.0", 360 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 361 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 362 | }, 363 | "utils-merge": { 364 | "version": "1.0.1", 365 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 366 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" 367 | }, 368 | "vary": { 369 | "version": "1.1.2", 370 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", 371 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" 372 | } 373 | } 374 | } 375 | --------------------------------------------------------------------------------