miércoles, 5 de noviembre de 2014

Tutorial: Crear un servidor Restify en Node JS + MySql





A continuación les expongo los pasos completos que debemos seguir para crear un servidor Restify en Node JS + MySql

  • Lo primero que debemos hacer es instalar la plataforma de Node.Js la cual podemos descargar desde su sitio oficial: http://nodejs.org/


  • Una vez teniendo instalado el Node.Js procederemos a crear nuestra aplicación comenzando por crear una carpeta donde serán almacenados e instalados todos los módulos que implementaremos. En este ejemplo nuestra aplicación será almacenada en la carpeta c:/wsnodejs


  • Por principio de cuentas nuestra carpeta estará vacía, por lo que deberemos instalar los módulos de restify y mysql dentro de nuestra aplicación utilizando el comando npm perteneciente a Node.Js desde la línea de comandos ubicados en el directorio correspondiente.
       npm install restify
       npm install mysql


  • Una vez ejecutados estos comandos, dentro de nuestra carpeta de la aplicación podremos observar que se ha creado una subcarpeta llamada node_modules en la cual fueron instalados los módulos de restify y mysql especificados anteriormente.
  


  • Lo siguiente por hacer será comenzar a crear nuestro servidor implementando código javascript y utilizando el módulo restify que instalamos anteriormente.
       
       
  • Para esto, dentro de la carpeta principal crearemos un archivo .js  (en este ejemplo llamado app.js) el cual tendrá todo el código necesario para la creación del servidor y las configuraciones de las peticiones que podrá recibir.
  • Como podemos observar en la imagen anterior, dentro del archivo app.js estamos incluyendo el módulo de restify que instalamos en pasos anteriores, y mediante este mismo creamos un servidor que escuche en la IP 127.0.0.1 (localhost) en el puerto 1234
  • Una vez guardado nuestro archivo app.js, para comenzar a correr nuestro servidor deberemos regresar a la línea de comandos y ejecutar la instrucción node app.js
  • Para comprobar si nuestro servidor está ejecutándose correctamente, bastara con acceder desde nuestro navegador a la dirección locahost:1234

  • Como podemos ver en la imagen anterior, nuestro servidor ya se encuentra ejecutándose en localhost:1234, sin embargo esta petición nos devuelve un mensaje de error dado por Node.Js debido a que no hemos establecido ninguna petición de entrada dentro de las configuraciones iniciales del servidor.
  • A continuación dentro del mismo archivo app.js configuraremos una petición de entrada GET para que cuando se consulte localhost:1234 el servidor nos devuelva el mensaje de “Hola mundo”.

  • Para que nuestro servidor vea reflejados los cambios, es necesario volver a ejecutar el comando node app.js para reiniciar el servidor.


Conectarse al servidor de MySql

  • Hasta este punto ya hemos configurado un servidor restify que reciba ciertas peticiones utilizando Node.Js.                                                                                      
  • Ahora el siguiente paso será establecer las configuraciones y conexiones necesarias para trabajar con la base de datos de MySql y permitir la obtención y manipulación de datos desde las peticiones de entrada.                                                   
  • Para este punto será necesario tener creada una base de datos en MySql, en este ejemplo utilizaremos una base de datos con una única tabla (usuarios) la cual contiene la siguiente información inicial:
  • Ya que tengamos configurada nuestra base de datos, el siguiente paso será incluir dentro de nuestro archivo app.js el módulo de mysql que fue instalado al principio del tutorial, y establecer los parámetros de conexión al servidor (host, user, password y database).
  • También incluiremos una nueva petición de entrada la cual al consultar la dirección localhost:1234/usuarios el servidor nos devuelva el listado de todos los usuarios registrados en formato JSON




NOTA: No olviden que siempre que realicemos algún cambio en el archivo app.js deberemos reiniciar el servidor con el comando node app.js
En este punto si nosotros consultamos la dirección localhost:1234/usuarios desde nuestro navegador, deberemos recibir como resultado el listado de todos los usuarios en formato JSON.



Leer parámetros GET en las peticiones de entrada

  • Como hemos podido observar en los pasos anteriores, al crear una nueva petición de entrada cada una de las funciones recibe 3 parámetros principales (req, res, next), en este punto nos enfocaremos en el primero de ellos, el parámetro de entrada req, el cual contiene toda la información enviada en la petición de entrada, entre esta información se encuentran los parámetros GET y POST según sea el caso.
  • En base a esto digamos que queremos crear una petición de entrada que al consultar la dirección localhost:1234/Usuarios/{IdUsuario} nos devuelva como resultado en formato JSON el usuario correspondiente al ID especificado siendo {IdUsuario} un valor numérico correspondiente al ID del usuario que se desea obtener. EJ: localhost:1234/Usuarios/13


  •  Como podemos observar el objeto req que es recibido entre los parámetros de entrada contiene a su vez un objeto params con todos los parámetros enviados (GET y POST).

  • Si nosotros en este punto consultamos la dirección localhost:1234/Usuarios/13                 deberíamos obtener el siguiente resultado.
  • En base a esto ya podríamos crear una petición de entrada que reciba los parámetros necesarios para crear un nuevo registro de usuario, por ejemplo: digamos que queremos registrar un nuevo usuario al ejecutar la siguiente dirección localhost:1234/usuarios/agregar/{usuario}/{password}/{nombre                         
        Usuario: jluna; Password: 1234; Nombre: Jorge Arturo Luna de la Rosa;
  • Crearemos una nueva petición con las siguientes características:
  • Si nosotros volvemos a consultar todos los usuarios, dentro del listado deberá aparecer el nuevo usuario que acabamos de registrar:  localhost:1234/usuarios


  • De esta manera nosotros podemos incluir dentro de nuestra aplicación todas las peticiones y validaciones necesarias de un modo fácil y rápido como es el lenguaje javascript.


Acerca del Autor


Jorge Arturo Luna de la Rosa es desarrollador con +5 años de experiencia en la plataforma .Net y PHP. Se graduó de la Ingeniería en Telemática de la Universidad de Colima. Actualmente se desempeña en Dawcons en el área de equipos extendidos. Contáctalo en blog@dawcons.com.

1 comentario:

  1. Si yo quiero eliminar un usuario de la base de datos?

    ResponderEliminar