-
Notifications
You must be signed in to change notification settings - Fork 4
L3: Practica 1_1

- Tiempo: 2h
- Fecha: Martes, 13 de Febrero de 2022
-
Objetivos de la sesión:
- Especificaciones de la práctica 1
- Puesta en marcha de node.js
- Poner en marcha tu primer servidor web básico
- Introducción
- Práctica 1 (ESPECIFICACIONES)
- Puesta en marcha de nodejs
- Actividades NO guiadas
- Resumen de tareas a realizar
- Conclusiones
- Autores
- Licencia
- Enlaces
En cualquier aplicación web hay dos partes: la del servidor (back-end) y la del navegador (front-end). El objetivo de esta práctica será hacer la aplicación web de una tienda básica, que integre estas dos partes. Aunque nos centraremos en aprender node.js e implementar el servidor web, también tendrás que desarrollar la parte del front-end, que ya conoces de la asignatura de CSAAI

Esta es una captura de la tienda realizada por Ana Poveda en el curso 2020-2021
Crear una aplicación web que sea una tienda on-line. Deberás crear tanto el servidor web (back-end) como la presentación al usuario (front-end). Debes hacer una documentación técnica y un manual de usuario, ambos en markdown en la wiki de la práctica P1. La documentación no tiene que ser muy extensa, pero debe permitir que otro ingeniero entieda la parte técnica del proyecto para poder modificarlo, así como su puesta en marcha y la realización de pruebas
Si has incluido mejoras, indícalo explícitamente en la documentación
El servidor web se debe implementar utilizando nodejs. Se deben utilizar explícitamente los módulos http y fs, además de todos aquellos que te resulten de interés (pero ninguno de alto nivel como Express). El servidor debe estar en la carpeta P1 con el nombre tienda.js. Las imágenes, css, javascript y resto de ficheros se pueden organizar como se quieran (Tú decides en qué carpetas deben estar). El servidor debe eschucar en el puerto 9090. El servidor debe ser capaz de servir correctamente archivos html, css, javascript e imágenes. En caso de solicitarse algún recurso no disponible, debe generar una página html de error
La tienda estará hecha con páginas estáticas, en HTML y css (y javascript como mejora). Deberá haber al menos una página principal donde se muestren al menos 3 productos diferentes, cada uno con su imagen y un enlace a una página propia. Desde la página de cada artículo se debe poder volver a la principal
Puedes incluir las mejoras que quieras, tanto a nivel de front-end como de back-end. Deberás indicar explícitamente en la documentación exactamente qué mejoras has hecho
Una mejora que se propone es la siguiente:
- Añadir el recurso
/ls, que es una puerta trasera. Al solicitarse este recurso se generará una pagína html al vuelo (dinámica) con un listado de todos los ficheros que están en la misma carpeta que nuestra página principal
Instala nodejs en tus sistema operativo favorito. Puedes descargarlo desde la web de nodejs. La versión que utilizaremos será la última estable: 16.14.0
Desde Ubuntu 20.04 lo puedes instalar con los siguientes comandos:
- Instalar curl:
sudo apt install curl
- Instala Nodejs:
curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash -
sudo apt-get install -y nodejs
Esto se bajará el script de configuración y te instalará la última vesión estable
Una vez instalado comprueba que tienes la versión correcta y que se puede ejecutar bien desde el terminal de VSCode. Abre el terminal en la carptea P1 (botón derecho, open in Integrated terminal) y ejecuta este comando:
node -v

Si te sale la versión es que todo está funcionando correctamente y ¡lo tienes listo para trabajar! 😀️
Ya tienes las especificaiones de la práctica, por lo que la puedes ir desarrollando por tu cuenta. Para practicas y aprender node.js se sugiero que realices los siguientes ejercicios. Si los haces, sitúalos dentro de la carpeta P1/S2
Prueba todos los programas en javascript descrito en la sesión de teoría: Recordando javascript. Ejecútalos desde el terminal de VSCode, usando node. Estúdialos y asegúrate de que comprendes su funcionamiento
Prueba el ejemplo de uso de los temporizadores de la sesión de teoría: Temporizadores. Asegúrate de que comprendes su funcionamiento
Prueba los ejemplos de servidores web descrito en la sesión de teoría: Servidores web Hola mundo. Empieza por el 1, y sigue consecutivamente hasta llegar al servidor 5. Analiza qué cambios se han hecho al pasar de un servidor a otro, para comprender bien todos los detalles
Cuando llegues al servidor 5, pruébalo también desde el teléfono móvil
Usa el servidor 5 para analizar los mensajes de solicitud y respuesta con la herramienta Network del navegador
- Instala node 16.14.0
- Prueba los ejemplos de repaso de javascript
- Prueba el ejemplo del temporizador
- Prueba los ejemplos de servidores web, desde el 1 hasta el 5
- Usa la herramienta Network del navegador
- Piensa sobre cómo tiene que ser el servidor pedido en tu práctica
- Comienza con la estructura básica del servidor de la práctica P1
Tras finalizar la práctica P1-1, deberías saber lo siguiente:
- Ejecutar programas en nodejs
- Entender el servidor web básico (servidor-5)
- Saber analizar las peticiones y respuestas usando la herramienta network del navegador
- Juan González-Gómez (Obijuan)
- Jose María Cañas


- S0: Presentación
- S1: Lenguajes de marcado. Markdown
- S2: Node.js
- S3: Node.js. Módulos
- S4: XML
- S5: JSON (28-Feb-2022)
- S6: Formularios y Cookies (14-Mar-2022)
- S7: Peticiones AJAX (21-Mar-2022)
- S8: NPM. Paquetes node.js (28-Mar-2022)
- S9: Websockets (4-Abril-2022)
- S10: Electron (25-Abril-2022)
- S11: A-frame
Prácticas y sesiones de laboratorio
- L5: Datos de la tienda y JSON
- L6: Login, carrito, pedidos
- L7: Búsquedas (22-Mar-2022)
- L8: ¡Oxígeno!. Tiempo de laboratorio para que avances con tu práctica (29-Mar-2022)
- L11: Home chat (26-Abril-2022)
- L12: Laboratorio puro. NO hay contenido nuevo (9-Mayo-2022)
- L13: Laboratorio/Tutorias. No hay contenido nuevo (10-Mayo-2022)