Crear Aplicacion Básica en nodejs con base de datos en Mariadb (Virtualizada y Dockerizada)
Pre Requisitos
Para crear el archivo package.json
npm init -y
Instalamos express y mariadb
npm i express
npm i mariadb
crear archivo index.js
contenido:
const express = require('express')
const app = express()
const pool_conex = require('./base_datos') // se refiere a la carpeta llamada base_datos
///MOSTRAR EN EL NAVEGADOR SOCIOS REGISTRADOS
app.get('/socios', async (req, res) => {
//obtener conexiones
const conn = await
pool_conex.getConnection(); //crea un nuevo query o consulta
const query= 'select * from socios';
//ejecutando el query
const registros= await conn.query(query);
//respuesta al cliente
res.status(200).json(registros);
});
app.use(express.json());
app.use(express.urlencoded({ extended: true}));
//OBTENER A TRAVES DEL METODO POST NUEVOS SOCIOS
app.post('/nuevo-socio', async (req, res) => {
let nombre = req.body.nombre;
//obtener conexiones
const conn = await pool_conex.getConnection();
//crea un nuevo query o consulta
const query='insert into socios (nombre) VALUES ("' + nombre +'")';
//ejecutando el query
const resultado= await conn.query(query);
//respuesta al cliente
res.status(200).json(resultado);
});
app.listen(3008, '0.0.0.0', () => {
console.log("el servidor esta escuchando por el puerto:", 3008); })
crear archivo de conexion a base de datos base_datos.js
const mariadb = require('mariadb')
const pool_conex = mariadb.createPool({
host:'192.168.56.105', // esta ip es de la maquina virtual centos donde corre el contenedor
port: '3308',
user: 'root',
password: 'miclave',
database: 'mibasedatos' });
async function getConnection(){
try { const connection = await
pool_conex.getConnection(); return connection; }
catch (error) {
console.log(error) }
}
module.exports = {getConnection};
En el servidor virtualizado (Vbox) crear contenedor de mariadb puerto 3308 para no utilizar el que viene por defecto 3306 que se ejecute en segundo plano
docker run -p 3308:3306 -d --name cont_mariadb -e MYSQL_ROOT_PASSWORD=miclave mariadb/server:10.4
Ingresar a mysql
mysql -h 127.0.0.1 -P 3308 -u root -p
Los siguientes comandos los toma tanto en mayúsculas como en minúsculas.
CREATE DATABASE mibasedatos; //crear base de datos
use mibasedatos; // usar base de datos
SELECT DATABASE(); //seleccionar
CREATE TABLE socios(nombre VARCHAR(100)); //crear tabla socios
INSERT INTO socios VALUES ('socio1'), ('socio2');
Con los comandos netstat y docker ps podemos ver que se esta ejecutando el contenedor por el puerto 3308
En Visual studio code corremos la aplicacion node index.js en el terminal veremos:
Ingresar al Navegador a la URL http://localhost:3310/socios
Realizar una peticion POST desde cualquier aplicacion (Postman, Insomnia, etc. Aqui la haremos con Insomnia) a la ruta http://localhost:3310/nuevo-socio y en el body el JSON con el nombre que queremos registrar:
Al consultar la url nuevamente:
Podemos chequearlo en mariadb directamente:
Por ahora esto ha sido todo espero que les sea de provecho. Un ejercicio simple pero que resuelve algunas dudas.










Comentarios
Publicar un comentario