NodeJS tiene multitud de mdulos que nos facilitan el desarrollo gil de
aplicaciones web. Hoy nos vamos a centrar en dos
mdulos. Express y Jade.
Express
Express es el Framework que vamos a utilizar para realizar aplicaciones web con NodeJS y nos va a facilitar mucho las cosas y, por defecto, utiliza plantillas Jade , es por eso que instalamos tambin las plantillas Jade. Puedes encontrar toda la informacin de Express en su pginan oficial
Jade
Jade son las plantillas que usa por defecto. Puedes encontrar toda la informacin de estas plantillas en su pgina oficial pgina oficial
Instalacin
Para instalar estos dos mdulos deberemos utilizar el siguiente comando en el directorio que queramos crear nuestra aplicacin. npm install express npm install jade
Por ltimo, deberemos tener el comando express como variable global, esto se consigue de la siguiente manera:
npm install express -g
Una vez tengamos "express" globalmente podemos crear nuestra primera aplicacin de la siguiente manera:
express chat
En nuestro caso, como queremos utilizar sesiones, haremos lo siguiente:
express --sessions chat
Una vez creada la aplicacin, se habrn creado los siguientes ficheros y directorios:
package.json Sirve para definir la aplicacin, el nombre de la misma, su versin y que dependencias vamos a usar, en este caso es importante poner express y jade con sus correspondientes versiones (npm info express versin)
app.js En l, nos encontraremos las llamadas a los diferentes mdulos, la configuracin para lanzar la aplicacin, el puerto por el que va a escuchar (por defecto el 3000), el mapeo de rutas y muchas cosas ms.
public/ Son los archivos que los usuarios finales tienen libre acceso, como los Javascript, CSS, imgenes o vdeos.
routes/ Una vez mapeadas las rutas querremos que hagan algo, es aqu dnde programaremos que hacer en cada caso. views/ Como su nombre indica, va almacenar las plantillas (archivos con extensin .jade)
Funcionamiento bsico de NodeJS+Express
El funcionamiento bsico de NodeJS+Express es muy sencillo de entender, y una vez tengamos claro estos conceptos podremos realizar aplicaciones web "estticas" y tenemos la base para poder empezar a conocer otros mdulos como mongodDb o mysql para las bases de datos, o websockets para realizar aplicaciones en tiempo real, lgicamente el instalar un nuevo mdulo requiere aprender el funcionamiento de este.
3 Pasos fundamentales
Normalmente los tres pasos fundamentales son los siguientes:
1. Mapear la ruta: Es decir, cuando un usuario entra por primera vez en nuestra pgina principal sera de la siguiente forma:
app.js app.get('/', routes.index);
En este caso es app.get porque se enva mediante la URL (GET), si se enviase la informacin a travs de un formulario POST, pasara a app.post.
El primer parmetro '/', se refiere a la ruta, en este caso al ser la pgina principal sera as, si quisisemos aadir una nueva para un enlace href="/quienessomos", sera app.get('/quienessomos').
El segundo parmetro routes.index, se refiere quin se va encargar de realizar las operaciones correspondientes a este mapeo, y es aqu cuando pasamos al paso 2.
Importante. Es muy importante poner el orden de los mapeos correctamente, es decir, que funcionan por orden, si tenemos el siguiente ejemplo
Siempre que escribamos en la URL /quienssomos, va a tomarlo como que estamos enviado quienessomos como variable, ya que al cumplirse la primera se olvida de el resto. En el ejemplo anterior para que funcionase correctamente sera al revs.
2. Routes: Aqu el archivo index.js se va encargar de hacer las operaciones pertinentes para cada mapeo de rutas. Normalmente se pueden realizar dos operaciones finales: Renderizar una plantilla y pasaramos al paso 3 o redireccionar a otra pgina que volveramos al paso 1.
exports.index, en este caso es .index porque en app.js hemos dicho que quin se va encargar de esta ruta es routes.index.
Es una funcin que tiene dos parmetros que nos va a permitir recibir parmetros mediant URL, formularios o sesiones, o, renderizar o redireccionar entre otras cosas a otras URLs.
En este ejemplo, estamos renderizando el archivo index.jade y le enviamos como parmetro el ttulo que va a tener la pgina.
res.render('index', {title :'Bienvenido al Chat'});
3. Views: renderizar plantilla. Si se desea conocer ms las plantillas Jade, ir al enlace que he puesto al comienzo de esta Wiki.
En este primer ejercicio, vamos a tratar de realizar un formulario inicial para que el usuario ingrese su nick o nombre de usuario, y si no existe entre los usuarios conectados que le deje pasar al chat creando una sesin y mostrndole los diferentes usuarios que estan conectados, y si ya existe ese usuario que muestre una pgina con el error que ese usuario ya esta siendo utilizado. Es un ejemplo sencillo pero que recomiendo realizar para ir aprendiendo los conceptos bsicos de NodeJS.