lunes, 4 de mayo de 2015

Sails Js. Uso de MySQL



En este post vamos aprender a configurar sails js para hacer uso de mysql como manejador de base de datos. Para este post se asume que ya se tiene instalado node y sails js (si no es así, dirígete a los post anteriores).

Como bien sabemos, sails hace uso por defecto de sails-disk adapter para el manejo de base de datos. Esto es muy útil para el desarrollo de prototipos o mientras hacemos pruebas con el framework. Pero en un ambiente de producción es necesario hacer uso de manejadores de base de datos mas  robustos.

Como ya se menciono en post anteriores sails utiliza Waterline como ORM/ODM. Vamos a ver como configurarlo para utilizar MySQL.

Para ello primero creamos una aplicación:

sails new demoapp

Una vez hecho esto debemos cambiar el comportamiento por defecto de sails de hacer uso de sails-disk adapter.

Accedemos al archivo connections.js en el directorio config (config/connections.js), y agregamos lo siguiente:

mysql: {
    adapter: 'sails-mysql',
    host: '127.0.0.1',
    user: 'db_user',
    password: 'pass_db',
    database: 'database'
}

Nota: Recuerda configurar esto con los datos correspondientes a tu base de datos.

Ahora en el archivo models.js, que también se encuentra en el directorio config (config/models.js) es donde vamos a indicar a sails que haga uso del conector recién creado. Para ello agregamos lo siguiente:

.....
.....
connection: 'mysql',
.....
.....

Con esto le estamos indicando a sails que por defecto todos los modelos de nuestra App, harán uso del conector 'mysql'.

Solo nos falta instalar el adaptador para mysql, sails-mysql mediante npm (este comando debe ser ejecutado en el directorio raíz de nuestra app):

npm install sails-mysql --save

Con la opcion --save estamos indicando a sails que sails-mysql forma parte de las dependencias de nuestro proyecto, con lo que creara la linea correspondiente en nuestro archivo package.json.

Para comprobar creamos un modelo y un controlador:

sails generate model user firstName:string lastName:string
sails generate controller user

y lanzamos el servidor:

sails lift

Ahora comprobamos en nuestra base de datos y debe existir una nueva tabla llamada "user" con los campos firstName, lastName (indicados en el modelo user) y los campos creados automaticamente por sails: id, createdAt y updatedAt.

Esto es todo por ahora, espero sea de ayuda. No olvides siempre consultar la documentación oficial de Sails js

No hay comentarios:

Publicar un comentario