PRUEBA PRÁCTICA.
CUADRAR VISUAL ESTUDIO CODE PARA EL HIPERTERMINAL
Cambiar la terminal de Visual Studio Code por ZSH. | by Luis Subiabre | Medium
“No Pain No Gain” es un gimnasio que recientemente abrió las puertas en el país y está
requiriendo la creación de una API Dockerizada que le permita registrar sus usuarios por
sede y por ciudad.
Cada ciudad puede tener N sedes, y cada sede puede tener un Max de 300 usuarios.
El sistema va a tener usuarios admin que son funcionarios del gimnasio y los usuarios
normales que son aquellos usuarios del gimnasio.
Los usuarios admin pueden crear ciudades y sedes y deben estar logueados para poder
llevar a cabo dichas acciones, y los usuarios normales pueden consumir directamente el
servicio de registro, pero estos no pueden registrarse más de dos veces.
- Crear un modelo de datos para soportar los requerimientos del gimnasio usando
mySql o Sql Server.
- Crear un endpoint que permita al usuario admin iniciar sesión.
- Crear un endpoint para el registro de las ciudades (Solo puede ser consumido por un
admin que este logueado).
- Crear un endpoint para el registro de sedes (Solo puede ser consumido por un admin
que este logueado).
- Crear un endpoint para el registro de usuarios. Validar si el usuario ya está
registrado.
- Crear un endpoint que me permita consultar los usuarios registrados en una sede de
una determinada ciudad sedes (Solo puede ser consumido por un admin que este
logueado).
- Agregar por lo menos 3 pruebas unitarias usando Jest.
- Crear una colección usando Postman ([Link] que tenga el
consumo de los endpoints:
Inicio de sesión.
Registro de sede.
Registro de ciudad.
Registro de usuarios.
Consulta de usuarios registrados en una determinada sede.
Se recomienda usar Express JS para la construcción del API.
Subir el código a un repositorio público como github y compartir las instrucciones de como
desplegar la aplicación. Dichas instrucciones deben ser puestas en un archivo [Link].
Agregar pruebas unitarias y de integración. Adicionalmente construir un FrontEnd en
Angular 6 o superior que permita consumir el API.
PRUEBA CIUDADES
2 PASO
3. AHORA INSTALAR EXPRESS FRAMEWORK PARA CREAR SERVIDORES HTTP
Ahora se invoca el código exprees
Se crea una variable app para invocar express
Se crea la puerta si el hosting la da
O se setea con set
SE PRUEBA QUE EL PUERTO ESTE CORRIENDO
TUTORIAL NODE JS
Los pasos son los siguientes:
1. Ir a: File > Preferencies > Settings.
2. En Setting dirigirse a: Features > Terminal.
3. Ubicar la opción: Integrated > Automation Shell: Windows y seleccionar
donde dice “Edit in settings. json” el cual abrirá un archivo de configuración.
4. Reemplazar el valor de la siguiente linea:
1 CREAR UN PCAKGE JASON
Sale esto
Versión para ir versionando
Instalar un framework para escribir
Express para escribir código de servidor
Motor de plantillas html
Modulo Morgan para ver que lo que está pidiendo los usuario ver los logs o registros que
hace los usuarios al servidores.
Carpeta source: para una carpeta
Entonces
Entonces para pintar mi primer hello word
var http = require('http');
[Link](function (req, res) {
[Link](200, {'Content-Type': 'text/plain'});
[Link]('Hello World!');
}).listen(8080);
El módulo HTTP integrado
[Link] tiene un módulo integrado llamado HTTP, que permite a [Link]
transferir datos a través del protocolo de transferencia de texto de Hyper
(HTTP).
Para incluir el módulo HTTP, utilice el método:require()
[Link] como servidor de archivos
El módulo del sistema de archivos [Link] le permite trabajar con el
sistema de archivos de su equipo.
Para incluir el módulo Sistema de archivos, utilice el método: require()
var fs = require('fs');
Uso común para el módulo Sistema de archivos:
Leer archivos
Crear archivos
Actualizar archivos
Eliminar archivos
Cambiar el nombre de los archivos
Leer archivos
El método se utiliza para leer archivos en el [Link]()
Supongamos que tenemos el siguiente archivo HTML (ubicado en la misma
carpeta que [Link]):
[Link]
<html>
<body>
<h1>My Header</h1>
<p>My paragraph.</p>
</body>
</html>
Cree un archivo [Link] que lea el archivo HTML y devuelva el contenido:
Utilizando el método open se crea una rchivo vacion en nuestra ruta de
carpetas
var fs = require('fs');
[Link]('[Link]', 'w', function (err, file) {
if (err) throw err;
[Link]('Saved!');
});
vpn bróker}
C:\xampp1\htdocs\pruebagimnasio>node src/[Link]
Instalar mySQL Driver
Una vez que tenga MySQL en funcionamiento en su equipo, puede acceder
a él mediante [Link].
Para acceder a una base de datos MySQL con [Link], necesita un
controlador MySQL. Este tutorial utilizará el módulo "mysql", descargado de
NPM.
Para descargar e instalar el módulo "mysql", abra el Terminal de comandos
y ejecute lo siguiente:
C:\Users\Your Name>npm install mysql
Ahora ha descargado e instalado un controlador de base de datos mysql.
[Link] puede utilizar este módulo para manipular la base de datos MySQL:
var mysql = require('mysql');
ADVERTISEMENT
Crear conexión
Comience creando una conexión a la base de datos.
Utilice el nombre de usuario y la contraseña de su base de datos MySQL.
demo_db_connection.js
var mysql = require('mysql');
var con = [Link]({
host: "localhost",
user: "yourusername",
password: "yourpassword"
});
[Link](function(err) {
if (err) throw err;
[Link]("Connected!");
});
Ejemplo de ejecución »
INSTALAR EXPRESS
INSTALAR MORGAN PARA VER LAS PETICIONES EN SERVIDOR
DENTRO DEL PACKED JSON SE ESCRIBE EN LOS SCRIPTS PARA
EJECUTAR
START PARA QUE CORRA AUTOMATICA MENTE
SE INSTALA NODEMONg
NODEMON PARA DESARROLLOA
ES PARA QUE LOS CAMBIOS SE HAGAN EN VIVO
SIN PARAR EL SERVIDOR
PARA EJECUTAR ES ASI
CREAR VARIBLE PARA CAMBIAR POR DONDE ESCUCHA EL PUERTO
CODIGO PARA SABER LA DIRECCION
Con el comando
_dirname
PARA PUBLICAR UNA PAGINA WEB
Que se llama login
PARA UTILIZAR EL MOTOR DE EXPREES
//configuracion de motor de plantilla con express
[Link]('view engine', 'ejs');
PARA UTILIZAR EL MOTO DE PLANTILLAS EXPRESS DONDE LA CARPETA SE
LLMA VIEWS
PARA METER CODIGO EN LA PLANTILLA HTML
Se crea otra estructura de carpetas
Routes -[Link]
OJO PARA PASAR VARIABLES de js a la plantilla express
OJO PLANTILLA JS DENTRO DE LA CARPETA VIEWS
HA PLANTILLA [Link] GENERADRO DE PLANTILLA EXPRESS COLOCAR
VARIBALES EN HTML PARA SE VISUALIZAN BIEN LIMPIAS
PARA ENRUTAR COMO DEBE SER
Se crea una carpeta en src llamada routes
Dentro de routes se crea un archivo llamado
[Link]
DESDE HAY LLAMA [Link] donde va el código javascript
ES DECIR CUANDO SE EJECUTA node src/[Link] este llama el [Link] que esta en route y el
[Link] llama login
EJEMPLO PARA CREAR ADMIN USUARIOS
Se crea en la vista el archivo usuariosadmin se
adiere la ruta en el [Link] dentro de la carpeta
router
PARA CAMBIAR TODO LO QUE DIGA LA
ESTENSION ejs por html
Eso se hace en el [Link] que esta en el router
OJO CAMBIAR LAS EXTESIONES EJS POR .HTML,
DE TODAS MANERAS EL MOTOR DE PLANTILLAS
DE EXPRESS LO VA A RENDERIZAR COMO .EJS
Ahora hay que cambiar el [Link] de la carpeta
router los nombres.
PARA UTILIZAR ICONOS ESTA PAGINA Y SE
AGREGA COMO BOOSTRAP
PARA AGREGAR ESOS ICONOS SE AGREGA LA
CLASE
OJO OPERAR EN NODE JS IMPORTAR LOS METODOS DE [Link]
METODO EN NODE JS PARA CREAR ARCHIVOS Y ESCRIBIR DENTRO DE ELLOS
Se crea el archivo [Link]
MODO DE HACER CONSULTAS
METODO LEER ARCHIVOS EL QSE CREO SE LEE Y LO CONVIERTE EN UN STRING ESTE TIPO DE
CODIGO ES NO BLOQUENATE ES DECIR SE EJCUTA Y SIGUE EJECUTANDO
SE OBTIENE LA RESPUESTA
DENTRO DE UN OBJETO JAVASCRIPT
PARA INSTALAR NPM
PARA INSTALRA NPM
Y SE AGREGA UN NODE MODOULES
Y UN PACKAGE JASON
PARA INVOCAR EL MODULO
CUANDO SE SUBE AL SERVIDOR BORRO EL NODE MODULOS.
CON NPM INSTALL LEE EL PACKAGE JEISON PARA INSTALALRLO
Seis reglas
1. Arquitectura clientes servidor consumir y brindar recursos.
2. State les: no guarda solicitudes no guarda solicitudes anteriores.
3. Rutas o enpoints, cambian sin cambiar la uniformidad variante.
4. Interfaz uniforme.
5. Codigo on demand: web on asembly
6.
node src/[Link]