Prácticas Cliente Servidor en JavaScripot
Desarrollo de Aplicaciones Telemáticas, 2021-2022
Grado en Ingeniería en Tecnologías de la Telecomunicación
Grado en Ingeniería en Sistemas de Telecomunicación
Escuela Técnica Superior de Ingeniería de Telecomunicación
Universidad Rey Juan Carlos
Prueba en tu ordenador el primer ejemplo completo de las transparencias sobre Express.js (api_rest.js). No escribas memoria de este apartado.
Prueba en tu ordenador el ejemplo de las transparencias para servir ficheros estáticos (estaticos.02.js). No escribas memoria de este apartado.
Considera la empresa de tu práctica 1.4. Diseña un interface REST/ROA con al menos 4 direcciones para hacer diversas operaciones: dar de alta un usuario, consultar los datos de un producto a partir de su id, reservar una habitacion en cierta fecha, etc.
Configura Express.js en el fichero ~/dat/practica05/empresa.js
implementando ese API, pero devolviendo solamente mensajes de prueba. En otras palabras: escribe un script similar al api_rest.js
de las transparencias, pero con un API diferente.
Crea un fichero ~/dat/practica05/servidor_distancias.js
que ofrezca mediante un interface REST/ROA la función principal de ~/dat/practica03/convierte.js
Copia el código que necesites de tu práctica 3.
Si el cliente comete algún error con los parametros (el primero no se puede convertir en número o el segundo no es una unidad adecuada) el servidor devolverá un error 400 Bad Request
.
Puedes diseñar la URL como prefieras, pero observa que debería tener dos parámetros.
Crea un fichero ~/dat/practica05/estaticos.js
que configure Express.js para exportar via web en el puerto 3000 de localhost tus ficheros de las prácticas 1, 2, 3 y 4.
Para construir los path, usa siempre path.join()
Prepara un script en node.js con el nombre ~/dat/practica05/json.js
. Define un objeto literal con al menos 8 propiedades, probando todos los tipos de valor de JSON. Convierte el objeto en cadena. Convierte la cadena de nuevo en objeto.
Prueba dobla_server y dobla_client en tu ordenador. No es necesario que escribas memoria.
Copia el fichero dobla_server.js de las transparencias en ~/dat/practica05/opera_server.js
.
Copia el fichero dobla_client.html de las transparencias en ~/dat/practica05/opera_client.html
.
Copia el fichero dobla_client.js de las transparencias en ~/dat/practica05/js/opera_client.js
.
Haz los cambios necesarios para que:
El cálculo del doble del número sea una función independiente.
El directorio raiz sea ~/dat/www/site01
No use funciones flecha sino funciones con sintaxis tradicional.
Si el cliente pasa un argumento que no es un número, el servidor devuelva un error 400 Bad Request
. El cliente percibirá esto y lo mostrará en el HTML de la forma que te parezca conveniente.
El botón cuyo texto actual es enviar un valor pasará a tener un texto como doblar un valor. Y habrá otro botón con el texto triplicar un valor completamente análogo al anterior, que enviará un número aleatorio al servidor via REST/ROA y recibirá el número por triplicado.
Añade un nuevo botón al interface, llamado Introducir Errores. Cuando se pulse, la aplicación estará en un modo especial en el que, de vez en cuando, en vez de enviar un número correcto, enviará un valor ilegal. Por ejemplo una cadena.
Para implementar este de vez en cuando, antes del envio del valor, genera un valor aleatorio, y si está dentro del intervalo que veas oportuno, el cliente enviará un valor correcto, y si no, uno falso. Por ejemplo, genera un número del 1 al 5, si sale 1 envía un error, en otro caso, un valor correcto.
Cuando la aplicación esté en este modo, el botón tendrá el texto No Introducir Errores, al pulsarlo, volverá al modo en el que todos los valores que se envían son correctos.