Sequelize un ORM para Node.js

Sequelize un ORM para Node.js
Sin comentarios Facebook Twitter Flipboard E-mail

El soporte de Node.js para bases de datos NoSQL es muy completo, pero si uno quiere convertirse en la plataforma de referencia se necesitas soportar también bases de datos SQL. En estos servidores el uso de frameworks como Hibernate y Entity Framework se ha convertido en algo habitual. Sequelize es el framework ORM de Node.js para soluciones como MySQL o Postgre.

Instalación de Sequelize

La instalación del producto se realiza a través de npm:

npm install sequelize

Instalado el framework el siguiente paso es instalar un soporte para una base de datos concreta, en esta caso MySql.

npm install mysql

Vamos a utilizar el framework:

 
var Sequelize= require('Sequelize');
var sequelize = new Sequelize('genbetadev', 'miusuario', 'miclave', {
  host: 'localhost',
  dialect: 'mysql',
  pool: {
    max: 5,
    min: 0,
    idle: 10000
  },
});

Instanciamos Sequelize y configuramos los típicos parámetros de usuario, clave etc. Al tratarse de un framework de persistencia **es habitual definir el dialecto que se va a usar y el tamaño del pool de conexiones.En este caso optaremos por MySQL.

Utilizando Sequelize

El siguiente paso será definir una entidad de dominio y persistirla contra la base de datos.

var Persona = sequelize.define('Persona', {
  nombre: {
    type: Sequelize.STRING,
    field: 'nombre' 
  },
  edad: {
    type: Sequelize.INTEGER,
    field:'edad'
  }
}, {
  freezeTableName: true 
});

Hemos elegido el concepto de** Persona con nombre y edad**. Sequelize hace uso de un API orientado a promesas para gestionar la persistencia.

var p1=Persona.sync({force: true}).then(function () {
  
  return Persona.create({
    nombre: 'pepe',
    edad: 20
  });
});

El código crea la tabla y realiza guarda los datos de la persona en ella.

Sequelizemysql

Insertamos otra persona más:

var p2=Persona.sync().then(function () {
  
  return Persona.create({
    nombre: 'gema',
    edad: 30
  });
});

Es momento de seleccionar los datos que hemos almacenado:

Persona.findAll().then(function (personas) {

personas.forEach(function(elemento) {

  console.log(elemento.dataValues);

});

El API tiene similitudes con la de MongoDB solo que en este caso se usa para seleccionar registros de una base de datos SQL clásica.

Sequelizebusqueda

Node poco a poco se esta convirtiendo en una plataforma muy completa.

Comentarios cerrados
Inicio