--------------------------------------------------------------------------------
/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 |
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 |
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 |
--------------------------------------------------------------------------------
/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 |
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 |
Producto
16 |
Precio
17 |
18 |
19 |
20 |
21 |
22 |
Computadora
23 |
$14000
24 |
25 |
26 |
Celular
27 |
$5000
28 |
29 |
30 |
Television
31 |
$6500
32 |
33 |
34 |
Aire Acondicionado
35 |
$4500
36 |
37 |
38 |
Table
39 |
$7590
40 |
41 |
42 |
Xbox
43 |
$8500
44 |
45 |
46 |
Play
47 |
$9999
48 |
49 |
50 |
Camaras de Seguridad
51 |
$10000
52 |
53 |
54 |
Sega
55 |
$3500
56 |
57 |
58 |
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 |
--------------------------------------------------------------------------------