From 2736196e52296e6d2b824a7c0af07f62d7edd282 Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Tue, 14 Mar 2023 17:42:35 +0100 Subject: Añadir algo de backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contenidos.md | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) 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. + + -- cgit v1.2.3