You don't have javascript enabled. Good luck with that.

Crear una Api con NodeJS, Express y MySQL

Introducción

Descripción

En esta publicación vamos a crear una Api con NodeJS, Express y MySQL.

También utilizaremos Bcrypt, Cors, Dotenv, JsonWebToken, Jest y Supertest, pero esto en la siguientes publicaciones de la lista.

Requisitos previos

Para poder ejecutar un backend en NodeJS, necesitamos instalar NodeJS en nuestro sistema operativo, si ya lo tenemos instalado, podemos continuar con la publicación. Si no lo tenemos instalado podemos descargarlo e instalarlo entrando en el siguiente link.

Crear Base de Datos

Ahora, vamos a crear una base de datos en MySQL y crearemos la tabla documentos.

Copiar

Crear proyecto

Crear un nuevo proyecto

Vamos a crear un nuevo proyecto, para esto, vamos a abrir un terminal y pondremos el siguiente comando:

npm init
Copiar

Instalar los paquetes necesarios

Ahora, vamos a instalar los siguientes paquetes:

PaqueteUso
Nodemon.
Express.
MySQL2.
Node Input Validator.

Vamos a instalar Nodemon, Express, MySQL y Node Input Validator.

Para poder utilizar Nodemon en cualquier proyecto, lo instalaremos globalmente.

npm install express mysql2 node-input-validatornpm install -g nodemon
Copiar

Resultado

Añadiremos el siguiente comando dentro de scripts, el cual utilizaremos para encender localmente el backend con NodeJS.

Esto nos dejará un package.json parecido al siguiente:

"start": "nodemon server.js"
Copiar
Copiar

Configuración Inicial

Crear Server.js

Vamos a empezar creando un nuevo archivo, server.js en el cual importaremos express, y más adelante los controladores y las rutas.

En este archivo, pondremos la configuración de NodeJS y Express:

server.js Copiar

Crear Db.js

Ahora, vamos a crear el archivo db.js dentro de la carpeta config.

Requeriremos y configuraremos la conexión a la base de datos de MySQL. Iniciaremos la conexión, y la exportaremos para que sea accesible desde otros modulos.

config/db.js Copiar

Instalar Module Alias

Instalar module alias

Vamos a instalar Module Alias para poder escribir rutas más amigables y así poder importar los modulos más facilmente.

Ejemplo: require('@controllers/document.controller.js');

npm i --save module-alias
Copiar

Configurar los alias de las rutas

Una vez instalado, vamos a añadir al final del package.json, las rutas de las carpetas donde se encuentran los controladores, modelos, rutas y archivos de configuración.

package.json Copiar

Requerir module alias en server.js

Por último, para poder utilizar los alias que hemos añadido previamente, vamos a importar la librería module-alias al comienzo del archivo principal, en nuestro caso Server.js.

server.js Copiar

Modelo, Controlador y Rutas de Documentos

Crear el Modelo de los Documentos

Ahora, vamos a crear el modelo para la tabla de Documentos. En este modelo, crearemos un método para cada una de las consultas, get, post, put, delete...

Estos métodos los ejecutaremos desde el controlador, dependiendo de la ruta que reciba express. Para esto, exportaremos el modelo.

src/models/document.model.js Copiar

Crear el validador de Documentos

También, vamos a crear un validador de Documentos, para que no se puedan añadir documentos sin título a la base de datos. Este, lo exportaremos para poder utilizarlo en el controlador de documentos.

src/validators/document.validator.js Copiar

Crear el Controlador de los Documentos

Ahora es el momento de crear el controlador, este, dependiendo de la ruta de express, ejecutará un método u otro, el cual ejecutará el método correspondiente del modelo, realizando la conexión a la base de datos para, leer, crear, actualizar o eliminar documentos.

Exportaremos el controlador, para poder importarlo en document.routes.js y así poder asignar los métodos del controlador a las rutas.

src/controllers/document.controller.js Copiar

Crear las Rutas de los Documentos

Para terminar, crearemos el archivo de rutas, para empezar, importaremos el controlador para poder ejecutar los métodos de esté, y crearemos las rutas, asignandole el método del controlador correspondiente.

Exportaremos las rutas para poder importarlas y añadirlas a nodejs en el archivo server.js.

src/routes/document.routes.js Copiar

Últimos pasos

Actualizar el server.js

Por último, vamos a actualizar el archivo server.js, importando el archivo de rutas y diciendole a nodejs que las utilice.

Ahora, ya podemos comprobar que todo funciona, para esto podemos utilizar Postman.

server.js Copiar

Resultado

Creador

Adur Marques

Publicaciones relacionadas

Instalar NodeJS en un servidor con Nginx en Ubuntu Server

Instalar NodeJS en un servidor con Nginx en Ubuntu Server

DotEnv en Backend con NodeJS

DotEnv en Backend con NodeJS

Testing en Backend con NodeJS

Testing en Backend con NodeJS