martes, 11 de octubre de 2016

Creando un blog, creación de rutas con expressjs (Parte 1)

Hola de nuevo, hora de comenzar a crear algunas rutas en nuestra aplicación. La idea es que al finalizar este post tengamos rutas para hacer operaciones de Create, Read, Update y Delete (CRUD o ABM).

Primero, quitamos los middlewares que no son necesarios (luego se explicará que es un middleware), editar el archivo app.js y eliminar las siguientes líneas:



Verificar que la aplicación todavía este corriendo (para iniciar el proyecto utilizar DEBUG=blog-backend:* npm start en la raíz del proyecto).

En la carpeta de rutas (routes) de la estructura de proyecto creada anteriormente se crea un nuevo archivo llamado blog.js, con el siguiente código:

Ahora, toca entender lo que se esta haciendo, primero la palabra reservada require se utiliza para cargar un modulo, por ejemplo cuando hacemos var express2 = require('express'); estamos solicitando cargar el módulo express en la variable express2, luego con la variable creamos un router que básicamente es una instancia pequeña de la aplicación que permite modularizar las rutas.
Luego, utilizando el router, definimos la ruta / y definimos el handler para el método get.
Por último, exportamos (module.exports) el router, para que este pueda ser utilizado en otros archivos.

Además, para llamar a esta ruta, modificamos el archivo app.js de la siguiente manera:


De esta manera, definimos que la ruta blog sea tratada por el router definido el el archivo blog.js.

Para probar, hacer correr la aplicación y ejecutar el comando curl 127.0.0.1:3000/blog, la respuesta del servicio debería ser {"mensaje":"Funciona correctamente"}.

Ahora preparemos las demás rutas, solamente es necesario agregar los demás verbos HTTP para que sean manejados (Los verbos HTTP son GET para lecturas de datos, POST para inserciones, PUT para actualizaciones y DELETE para eliminaciones físicas o lógicas):


Para verificar que todo esta funcionando, utilizamos curl nuevamente con cada ruta.



Ahora, para probar, se puede agregar más rutas y verificar si funcionan de la misma manera. En el siguiente post nos conectaremos con una base de datos mongo y comenzaremos a realizar las operaciones con la base de datos. Keep coding >_<

domingo, 2 de octubre de 2016

Comenzando con node y express (Creando una API REST)

Hola de nuevo >_<, hace mucho que no escribo y decidí intentarlo de nuevo, esta vez creando un blog que tendra un backend REST con nodejs y express para luego realizar el frontend con Aurelia.

Primero, es necesario tener instalado node y npm. En mi caso, estoy usando como sistema operativo Ubuntu, pero el ejemplo que se realizará funciona en cualquier otro sistema operativo (en el caso de windows, pues, ... suerte... :D de todas maneras en caso de tener problemas al realizar alguna tarea en windows escribir un mensaje en el blog y se responderá tan rápido como sea posible ).

Entonces, primero instalaremos node y npm, con los siguientes comandos (Se deben ejecutar en la terminal):

$ sudo apt-get install nodejs
$ sudo apt-get install npm

Ahora, instalaremos una herramienta muy útil para cambiar la versión que utilizaremos de nodejs. La herramienta de llama "n" y para instalarla ejecutamos en la términal:

$ sudo npm install -g n

Para instalar la última versión de node simplemente ejecutamos en la consola:

$ sudo n latest

Con esto ya tenemos terminada la primera fase, pero verifiquemos que npm y node estan instalados pues son la base de todo, para ello anotar los siguientes comandos en la consola y asegurate que devuelvan una versión, no importa si la versión es mayor, si la versión es menor actualizar :D.




Ahora es necesario crear el esqueleto de la aplicación, para eso instalaremos el generador de aplicaciones de nodejs.

$ sudo npm install -g express-generator

Este comando instala el paquete "express-generator" de manera global "-g". Esto significa que se puede utilizar el paquete en cualquier ruta donde nos encontremos.

Una vez finalizado el proceso, ya podemos crear nuestra primera aplicación:

$ express blog-backend

Con este comando se creará la estructurá básica del proyecto, que luego iremos modificando de acuerdo a nuestra necesidad. Entonces, ya podemos instalar las dependencias necesarias para correr el proyecto, para realizar esto ingresamos a la carpeta del proyecto y ejecutamos npm install.

$ cd blog-backend
$ npm install

El comando "npm install" instala localmente  las librerias que necesitemos, esto significa que los paquetes instalados no estarán disponibles para su uso fuera del proyecto actual .

Ahora, es necesario entender lo que el comando npm install realiza. Al ejecutar el comando en la consola se instalan todos los paquetes que necesitamos para ejecutar la aplicación, pero se instalan solamente para el proyecto (contrario a la opción -g del comando que ejecutamos anteriormente), esto significa que los paquetes instalados solo pueden ser utilizados en la carpeta del proyeto (esto no es completamente correcto pero creanme por ahora...). Se puede revisar que paquetes se instalaran en el archivo package.json, donde se encuentran listadas las dependencias y sus versiones en el atributo "dependencies" (Se irá agregando y elimiando las dependencias de acuerdo a lo que se necesite en los siguientes tutoriales).



La estructura del proyecto debe ser la siguiente:

 

Poco a poco iremos reestructurando el proyecto de ser necesario, ahora para iniciar el proyecto:

$ DEBUG=blog-backend:* npm start

Veremos un ensaje en la consola de la siguiente manera:



Se puede observar que el servidor se encuentra corriendo en el puerto 3000,  ingresar a la dirección http://127.0.0.1:3000/ y verificar que todo sea correcto.


Si lograste ver el mensaje, ya tienes todo lo necesario para comenzar, sigamos con el siguiente post del blog para hacer cosas más interesantes, y recuerda, keep coding >_<