creamos nuestra configuramos nuestro entorno de trabajo
- Tener Node instalado
- Crear una carpeta donde podamos trabajar
- Dentro de la carpeta ejecutamos el comando
npm init -y
- Tener una base de datos preparada en este tutorial usaremos MySQL
- Instalamos el paquete de node para que nos facilite el trabajo de conectar con la abase de datos
npm i mysql
- creamos un archivo que podemos llamar connect.js para configurar la conexion y escribimos el siguiente codigo
const mysql = require('mysql');
const connection= mysql.createConnection({
host : 'nuestraCadenaDeCoexion',
database : 'laTabla a la que queremos acceder',
user : 'user',
password : 'pass',
});- Vale ahora toca ejecutar el metodo dentro de la variable connection para para que se establezca una coexion
connection.connect( err =>{
if(err){
console.error('Tenemos un problema', err.stack);
return // en caso de fallo salimos
}
console.log('Conexion OK!!!')
})- ya solo queda realizar una consulta contra la base de datos
connection.query('SELECT * FROM usuarios', (error,result,fields)=>{
if (error) {
console.log('tuvimos un fallo en la consulta ', error.message);
}
console.log(result); // aqui tenemos la informacion de la consulta
})- por ultimo si queremos indicar el maximo de conexiones disponibles tendremos que modificar un poco nuestra conexion
const mysql = require('mysql');
const pool= mysql.createPool({
connectionLimit : 10,
host : 'nuestraCadenaDeCoexion',
database : 'laTabla a la que queremos acceder',
user : 'user',
password : 'pass',
});
//una vez configurada
pool.getConnection(function(err, connection) {
if (err) throw err; // establecemos que hacer en caso de fallo
//usamos la conexion
connection.query('SELECT something FROM sometable', function (error, results, fields) {
// tratamos con los datos
connection.release();//devolvemos la conexion al pool
// manejamos los errores
if (error) throw error;
// una vez devuelta la conexion no podemos usarla
});
});trabajar con el pool de conexion es basicamente igual que trabajar con la conexion anterior. El pool de conexion tiene diversos metodos interesantes como podria ser
pool.on('connection', (connection)=>{}) //evento cuando se da una conexion
pool.on('enqueue', ()=>{}); //cuando tenemos una peticion de conexion y se queda en la cola
pool.on('release', (connection)=>{}) //cuando una coexion es devuelta al poolahora deberiamos familirizarnos con un ORM para poder abstraer las consultas de la conexion y trabajar indistintamente usemos la conexion que usemos
Asi que para el siguiente tutorial vamos a ver Sequelize un ORM que podremos usar con las siguientes bases de datos Postgres, MySQL, MariaDB, SQLite y Microsoft SQL Server