Express.js es un framework para Node.js que sirve para ayudarnos a crear aplicaciones web en menos tiempo ya que nos proporciona funcionalidades como el  enrutamiento, opciones para gestionar sesiones y cookies, y un largo etc…

Express.js está basado en Connect, que a su vez es un framework basado en http para Node.js. Podemos decir que Connect tiene todas las opciones del módulo http que viene por defecto con Node y le suma funcionalidades. A su vez, Express hace lo mismo con Connect, con lo que tenemos un framwork ligero, rápido y muy útil

Vamos a ver el ejemplo más sencillo posible de “hola mundo” utilizando Express.js.

Hola mundo

Creamos una carpeta donde vamos a poner el proyecto, ejemploExpress por ejemplo. Dentro de esa carpeta ejecutamos el siguiente comando para crear un archivo llamado package.json:

Nos preguntará desde la propia consola algunas cosas como el nombre y la versión del proyecto y creará automáticamente el archivo package.json con nuestra información básica. También podríamos crearlo a mano, pero así parece más fácil ¿no?.

El resultado, dependiento del nombre, versión, descripción etc… sería un archivo con un contenido similar a este:

En este archivo, también se guardarán las dependencias de nuevos módulos que añadamos. Basta con añadir –save al comando de instalación de un módulo. Comentaré más a fondo las posibilidades que nos da npm en otro post.

Instalamos Express.js añadiendolo a la lista de dependencias:

Creamos el archivo index.js que hemos indicado en package.json y le añadimos el siguiente código:

Y ya lo tenemos listo. Arrancamos la aplicación:

Abrimos un navegador cualquiera, ponemos como URL “localhost:3000” y el navegador nos mostrará el mensaje “Hola mundo”.

Lo que hace este código es crear un servidor que escucha peticiones GET en el puerto 3000.

Más peticiones

Si queremos escuchar peticiones con otros métodos las añadimos:

Arrancamos la aplicación igual que en el anterior ejemplo y ya podemos probarlo fácilmente con HttpRequester para firefox u otro plugin que haga peticiones desde el navegador. Si no también se puede probar haciendo peticiones desde la línea de comandos (en esta pregunta de Superuser.com explican como hacerlo).

El resultado será que dependiendo del método que utilices para hacer la petición, mostrará un mensaje u otro.

Esquema de aplicación con Express.js

Pero tenemos una forma bastante más fácil de crear un esquema completo de aplicación utilizando el generador de aplicaciones de Express.js. Puedes adaptarlo a tus necesidades más adelante, pero como punto de partida nos sirve sin modificar.
Instalamos express-generator:

Ahora nos situamos en la carpeta donde queremos crear el proyecto. Creamos un proyecto de ejemplo que vamos a llamar “ejemploCreator”:

Automáticamente express-generator creará una estructura para empezar a desarrollar una aplicación web.

Tenemos que instalar todas las dependencias necesarias para el proyecto, afortunadamente tenemos un archivo package.json con todas las dependencias incluidas y solo tenemos que ejecutar

npm creará la carpeta node_modules e instalará todos los módulos automáticamente.

Para que la aplicación arranque:

Npm start hace que la aplicación con este package.json arranque. Pero esta forma de arrancar la aplicación es ligeramente diferente de la que hemos usado para el anterior ejemplo.
Para ver como funciona, abrimos el archivo y podemos ver lo siguiente:

Npm ejecuta el comando que guarda la variable “start” dentro del objeto “scripts”,  y este comando es exactamente igual que el que hemos utilizado en los dos ejemplos anteriores.

Como nota final comentar que express utiliza Jade como motor de plantillas, así que no te asustes si cuando abres los archivos de la carpeta “Views” no reconoces el html que ves. Yo no lo he utilizado todavía porque me arreglo bien con el html tradicional (y no tengo tiempo de aprenderlo), pero si alguien que lo utilice ve claras ventajas, estaré encantado de leerlas.

¡Hasta la próxima!

Sobre El Autor

Economista reconvertido a programador. Hoy en día trabajo como Desarrollador de aplicaciones web y móvil con Node.js, Angular.js (MEAN Stack) e Ionic framework. También intento mantenerme al día de lo que se mueve en este mundillo y mantengo este pequeño blog como documentación personal. Si echas algo de menos en el blog no dudes en comentar, y si te ha resultado de utilidad algún artículo, te agradezco que lo agradezcas ;-). ¡Un saludo!

Artículos Relacionados

Una Respuesta

Hacer Comentario

Su dirección de correo electrónico no será publicada.