Servidores Web
Contenidos
Servidores Web con Node
Response y Request
Crear un servidor básico con Node siguiendo los siguiente pasos:
-
Ejecutar el siguiente comando:
node nodejs-server/server.js
Experimentemos con las distintas opciones presentes en el archivo y consultar las URL desde el navegador y usando Postman/Insonmia. Analizaremos como se maneja la conexión entre 2 sistemas (en este caso un navegador y un servidor Web) inspeccionando los parámetros de la función http.createServer
y como se relacionan con las clases http.IncomingMessage y http.
Primero crearemos un archivo escribiendo directamente un String
y veremos sus implicancias relacionadas al método write
y sus diferencias con el método writeHead
Request URL y su relación con la escritura y lectura de archivos
Ahora cambiaremos de archivo y vamos a ejecutar el siguiente comando:
node nodejs-server/server-with-routes.js
Una vez veamos los errores asociados a la falta de los archivos consultados, vamos a comenzar a crearlos. Para ello crearemos una carpeta llamada assets
en la raíz del repositorio. En su interior crearemos 3 archivos con los siguientes contenidos:
assets/app.js
function app(){
console.log('This Script was sent from server')
}
console.log('Running Frontend app')
app()
assets/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to .dev</title>
</head>
<body>
<h1>Hi, I'm </h1>
<script src="http://localhost:3000/app.js"></script>
</body>
</html>
assets/biography.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title> biography</title>
</head>
<body>
<h1> biography</h1>
<p>
My life it is very Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse euismod mauris vel turpis pretium, non fermentum erat porttitor. Sed sit amet libero nec metus cursus ultricies id id leo. Nulla sed tristique ipsum, nec congue mauris. Vivamus accumsan elit tortor, at ultrices enim venenatis eget. Phasellus non magna erat. Proin sit amet condimentum elit, ac ullamcorper libero. Phasellus eget sem quis arcu commodo pulvinar. Aenean ante sapien, elementum eget lacus quis, venenatis lacinia nunc. Ut hendrerit justo elit, eu blandit lectus congue vel. Nunc maximus auctor posuere. Sed nec enim metus. Nam ultricies arcu eget sapien porttitor suscipit. Fusce euismod eros tortor, et imperdiet nibh congue sit amet. Aliquam tincidunt, nulla eu lobortis suscipit, justo augue lacinia turpis, vel faucibus tortor diam aliquet diam.
</p>
<img src="https://images.unsplash.com/photo-1516860045403-e56cf9919c09?ixlib=rb-1.2.1&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80" alt="Man in nature" width="400">
<h2>Born and Childhood</h2>
<p>
Fusce cursus, velit eu tempus aliquet, elit quam efficitur lorem, tincidunt consectetur urna est eu nisi. Sed luctus, ligula ac malesuada aliquam, sapien sem porttitor nibh, ut sollicitudin odio dolor euismod augue. In vel augue quis dolor consectetur porta. In orci est, aliquet nec luctus ut, accumsan et libero. Mauris sit amet congue elit. Aliquam non tellus sed massa commodo lacinia non nec metus. In ante ipsum, ultricies at tellus ac, tempus condimentum urna.
Nullam congue tellus neque. Praesent viverra vitae ligula vitae sodales. Vivamus et est vitae velit laoreet ornare. Ut fringilla, sem vel mollis eleifend, tortor massa imperdiet sem, vitae facilisis magna turpis vestibulum elit. Quisque pretium metus sed consequat feugiat. In sodales, dolor vel vestibulum blandit, arcu massa consectetur orci, non interdum tortor orci a lacus. Maecenas nulla purus, interdum ac erat in, cursus ultricies elit. Nunc semper at urna a dapibus. Nulla hendrerit turpis eu facilisis dapibus.
Fusce volutpat sapien a libero rutrum vulputate. Etiam a metus sit amet lectus tincidunt commodo sit amet a nisl. Ut ut orci vel tellus rhoncus varius in non arcu. In eu erat commodo risus facilisis cursus ac eget erat. Curabitur vulputate rhoncus auctor. Integer at porttitor dolor. Pellentesque consequat iaculis ipsum, eu vestibulum massa consequat bibendum. Donec dapibus nunc at cursus vestibulum. Donec quis lacus blandit, gravida metus quis, euismod leo. In commodo laoreet turpis non gravida. Nullam felis magna, congue sit amet lorem feugiat, tempor hendrerit lacus. Suspendisse ex magna, malesuada et dictum quis, egestas quis tellus.
Donec pretium gravida risus et scelerisque. Nam consequat, velit elementum bibendum aliquet, dolor tortor dapibus libero, eu rhoncus mi metus sit amet odio. Etiam non metus eu tortor sagittis mollis. Donec sodales dui mattis nisi rutrum, in suscipit lectus condimentum. Donec et felis venenatis arcu ultricies lacinia. Curabitur vitae facilisis mauris, tristique scelerisque neque. Quisque aliquet posuere vulputate. Etiam mattis ante vitae efficitur placerat. Nam sed tellus condimentum, elementum nibh sed, gravida neque. Nulla ut risus a urna faucibus finibus scelerisque sit amet risus.
</p>
<script src="http://localhost:3000/app.js"></script>
</body>
</html>
Ahora podemos ver que sin necesidad de volver a correr el servidor, al consultar nuevamente los archivos ya estarán disponibles.
También podemos observar como es que podemos hacer más sofisticado el manejo de la Cookie pero aún sigue siendo bastante trabajo el tener que estar manejando estos temas sumado a toda la lógica relacionado al leer y enviar archivos.
¡Éxito!