Servicio rest con nodejs, express 4 y mysql
Servicio rest con nodejs, express 4 y mysql
¡INSCRÍBETE A CUALQUIER CURSO CON UN 50% DE DESCUENTO PARA NUEVOS CLIENTES!

Vamos a crear una sencilla api con NodeJS haciendo uso de Express y de mysql como gestor de bases de datos, gracias al método res.json de Express podemos crear las respuestas oportunas en un formato json con las respuestas http necesarias en cada caso, como veremos es muy sencillo.

Lo mismo podemos decir de los verbos http proporcionados por Express para montar una api rest con Nodejs de forma realmente rápida y sencilla:

  • get: Para obtener datos.
  • post: Para crear recursos.
  • put: Para actualizar recursos.
  • delete: Para eliminar recursos.


Creo que está bastante claro para que sirve cada uno de ellos.

¿Por qué no con Mongo?

La respuesta a no utilizar Mongodb es sencilla, yo creo aplicaciones a diario, y rara vez utilizo Mongo, casi todo lo hago con mysql. Entonces pienso que personalmente, me va a ser más útil un ejemplo con mysql que con mongo, ya que seguramente la base de datos en la que tenga mis datos esté en mysql.

Ésto no quiere decir que mongo no sea bueno, no hagamos mal entendidos :).

Creando una Api Rest con Nodejs

Nos colocamos en el directorio donde vayamos a crear el proyecto y escribimos en la terminal los siguientes comandos.

Y a continuación:

Ya tenemos creado el proyecto, ahora necesitamos instalar el paquete de mysql, es realmente sencillo, simplemente debemos escribir el siguiente comando en la terminal.

Una vez finalice el proceso, ya podremos hacer uso de todos los recursos de esta librería.

El archivo app.js

Como ya debemos saber, ahora es hora de modificar el archivo app.js para poder sacar el proceso de enrutado de aquí y trasladarlo al archivo routes/index.js, así que abrimos el archivo app.js y reemplazamos todo el código por el siguiente.

La base de datos y la tabla users

Crea tu base de datos y llamala como quieras, una vez hecho, importa esta tabla, que será la que utilicemos como ejemplo.

El modelo users.js

Creamos una carpeta llamada models en la raíz de la aplicación, y dentro creamos un archivo llamado users.js y añadimos el siguiente código, el cuál ya debemos conocer.

Lo único que diré es que modifiques los datos de acceso de tu base de datos, sino ésto no funcionará, creo que si estamos aquí, no hace falta explicar las consultas en mysql y que el código debe estar bastante claro :).

El archivo routes/index.js

Eliminamos todo el contenido de este archivo y añadimos el siguiente.

Aunque todas las peticiones, incluyendo put y delete las podemos hacer tanto con ajax como con CURL, nosostros las vamos a hacer a través de formularios, de esta forma veremos como nodejs entiende enviando la información desde un formulario cuando es una petición post, put o delete, siempre puede ser útil.

Los formularios

Ahora podemos crear todos los formularios que necesitamos, uno para crear, otro para actualizar, y otro para eliminar. Como veremos, el primero tendrá como atributo method de la etiqueta form POST, ya que lo que queremos es crear, y eso lo hacemos con el verbo POST, los otros dos trabajan de otra forma, es tan sencillo como colocar un campo oculto en el formulario cuya propiedad name sea _method y cuyo value para actualizar sea put y para eliminar delete, así de sencillo.

Con lo dicho, abrimos el archivo views/index.jade y añadimos el siguiente código, el cuál utilizaremos para editar usuarios.

Para acceder a este formulario lo haremos a través de http://localhost:3000/user/update/1

Ahora creamos un nuevo archivo en views llamado new.jade y añadimos el siguiente código.

Con este formulario podremos crear nuevos ususarios, la url para acceder es http://localhost:3000/create.

Finalmente tenemos el formulario para eliminar, el cuál sólo tiene un campo para escribir una id, así que creamos un archivo llamado delete.jade y dentro añadimos lo siguiente.

Como ya hemos dicho, sirve para eliminar, la url para acceder es http://localhost:3000/delete.

Ahora ya es momento de poner a andar nuestra aplicación, así que podemos ejecutar el siguiente comando en nuestra terminal.

O si tenemos nodemon instalado:

Si has seguido los pasos correctamente y accedes ahttp://localhost:3000/users, una vez hayas ingresado nuevos usuarios verás algo parecido a lo siguiente.

Si accedes a http://localhost:3000/users/1 verás algo parecido a lo siguiente.

Si añades un nuevo usuario, serás redirigido para ver los datos del usuario, quédate con el detalle de como hemos obtenido la id del usuario insertado.

Si repasas bien el código, verás como tenemos respuestas para todo lo que pueda pasar en formato json haciendo uso de res.json.

Espero que te sea útil, por favor, no copies y pegues el código, te engañas a ti mismo, trata de entenderlo, sólo así mejoraras, de otra forma, sólo sabrás copiar y pegar, saludos.