summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contenidos.md93
1 files changed, 92 insertions, 1 deletions
diff --git a/contenidos.md b/contenidos.md
index 182ecf7..2296098 100644
--- a/contenidos.md
+++ b/contenidos.md
@@ -574,7 +574,7 @@ async function obtenerDitto(){
## Resumen
El JavaScript aquí mencionado cubre casi todo el uso básico. La [guía
-profunda][js-deep] explica todo en mucho más detalle y añade más información
+profunda][js-deep] explica todo en mucho más detalle y añade más información.
# Programación del lado de cliente
@@ -653,3 +653,94 @@ Es diminuto (~1kLoC) por lo que puede estudiarse con facilidad.
[Tutorial de react en video][react-tutorial]
[react-tutorial]: https://www.youtube.com/watch?v=QFaFIcGhPoM&list=PLC3y8-rFHvwgg3vaYJgHGnModB54rxOk3&index=1
+
+
+
+# Programación en el lado del servidor
+
+En este curso se usa el entorno de ejecución NodeJS para trabajar en el lado
+del servidor, que también se programa en JavaScript.
+
+NodeJS es diferente que el entorno de ejecución de JavaScript en el navegador.
+En en lado del servidor las Web APIs no están disponibles del mismo modo que en
+el navegador, ya que el entorno en el que se ejecuta es diferente: el navegador
+es un programa visual, interactivo diseñado para hacer consultas Web que aporta
+JavaScript como un lenguaje de extensiones mientras que NodeJS es un entorno de
+ejecución de aplicaciones que por defecto no es gráfico.
+
+
+El entorno del servidor se parece más a la programación clásica, ya que no se
+ejecuta en el Sandbox del navegador: se dispone de acceso a archivos,
+interfaces de red y otros recursos del sistema, que en el navegador no están
+disponibles.
+
+## Frameworks de Back End
+
+### Express
+
+[Express][express] es un framework (para NodeJS) de programación Web de
+lado del servidor. Su funcionamiento interno se centra en un único concepto: el
+**middleware**.
+
+En Express el *middleware* se refiere a funciones que se ejecutan al recibir
+consultas Web.
+
+Cada función *middleware* se registra en la aplicación, para una ruta y método
+HTTP y se ejecutará cuando esta ruta y método sean accedidos por algún cliente.
+
+Como cada ruta y método pueden registrar varias funciones de *middleware* es
+responsabilidad de cada función de *middleware* decidir si se pasa a la
+siguiente o si se envía una respuesta, obviando el *middleware* restante.
+
+La [documentación de Express dispone de unas guías que describen el
+funcionamiento a la perfección][express]
+
+[express]: https://expressjs.com
+
+### Flask
+
+[Flask][flask] es un framework de programación en el lado del servidor, muy
+similar a Express, pero para el lenguaje Python.
+
+[flask]: https://flask.palletsprojects.com/en/2.2.x/
+
+### Otros
+
+Hay infinidad de lenguajes y frameworks en los que realizar aplicaciones web
+del lado de servidor. Aquí una lista de algunos muy usados:
+
+- PHP: Laravel, Symfony
+- Python: Flask, Django
+- Java: Spring
+- Ruby: Sinatra, Ruby on Rails
+- NodeJS: Express, Koa
+
+
+## Anatomía de una aplicación Web
+
+Una aplicación Web del lado del servidor debe recibir consultas de los
+clientes, procesarlas y retornar una respuesta.
+
+Las repuestas suelen ser documentos HTML, frecuentemente construidos de forma
+dinámica en el servidor basándose en plantillas de documentos escritas
+previamente e información adicional, normalmente obtenida desde una base de
+datos.
+
+Además del HTML, las aplicaciones Web suelen ser capaces de servir archivos
+estáticos tales como imágenes, archivos JavaScript para el lado del cliente,
+hojas de estilos CSS y otros. Estos se entregarán directamente, sin procesar.
+
+<!--
+
+# Apéndice: Test-Driven development (TDD)
+
+[Un tutorial con Jest muy sencillo][jest-tuto]
+
+[jest-tuto]: https://www.youtube.com/watch?v=G43sWqt8T98
+[jest-tuto-mejor]: https://www.youtube.com/watch?v=FgnxcUQ5vho
+
+[intro-tdd]: https://khalilstemmler.com/articles/test-driven-development/introduction-to-tdd/
+
+
+# Apéndice: El gestor de paquetes de NodeJS (NPM)
+-->