Cargando



Crear conexiones a Bases de Datos en Node.js

En este tutorial veremos un poco como hacer las conexiones a Bases de Datos desde nuestras aplicaciones construidas en Node.js, de esta manera podremos tener un poco más de libertad y seguridad cuando trabajemos con grandes volúmenes de datos, sin correr el riesgo de perder todo el trabajo.


mar 20 2015 02:56
Profesional
mar 20 2015 10:46
La creación de aplicaciones involucra muchas fases, una de ellas que no siempre es necesaria, pero que cada vez se está volviendo la norma en los desarrollos, es la conexión a Bases de Datos, esto nos permite almacenar los datos que generamos para su posterior consulta y procesamiento.

El problema o inconveniente es que existen muchos motores que podemos utilizar, dándonos así opciones de diferentes compañías y estilos, para que decidamos cual es el mejor para nuestro proyecto, o cual se asemeja más a nuestra forma de trabajo.

Gracias a la modularidad de la que hace gala Node.js podemos utilizar virtualmente casi cualquier tipo de motor que exista en el mercado, desde escritura a archivos CSV, pasando por Bases de Datos relacionales y hasta la última tendencia las Bases de Datos no relacionales o NoSQL.

Requisitos


Vamos a necesitar unas cuantas cosas de manera inicial para asegurarnos que podemos cumplir con los ejemplos del tutorial, veamos la lista:

1- Una instalación funcional de Node.js y acceso a la misma a través de consola.

2- Conexión a Internet para poder descargar los complementos e instalar las herramientas de conexiones a Bases de Datos.

3- Una instalación de MySQL, MongoDB o CouchDB, debemos poseer al menos uno de estos para realizar los ejemplos del tutorial, sin embargo recomendamos el uso de cada uno para así sacarle todo el provecho a los ejemplos.

4- Un editor de texto para que puedan construir los programas, puede ser Sublime Text o NotePad++.

Ya verificado que necesitamos para realizar los ejemplos del tutorial vamos a continuar con el mismo.

Archivos CSV la forma rudimentaria pero funcional


Si nuestros datos a almacenar son muy básicos, o tal vez la infraestructura de nuestra aplicación no requiere un manejador de Base de Datos completo, siempre tenemos la opción de trabajar con archivos separados por coma o CSV por sus siglas en inglés.

Este tipo de almacenamiento es muy popular como antiguo, ya que se basa en escribir un archivo, donde los valores como su nombre lo indica va separado por comas. Solo existe una limitación y es que debemos hacer un procesamiento especial si los campos contienen texto que posee comas y no son varios campos consecutivos, de resto es tan sencillo como suena.

Extensión
Node.js tiene una extensión muy interesante llamada csv que podemos instalar desde npm que nos ayuda a manejar este tipo de requerimientos de forma muy sencilla.

Así que nuestra primera acción será crear una carpeta donde residirá nuestra aplicación e instalaremos la extensión mencionada como vemos en la siguiente imagen:


conexiones-bd-nodejs.jpg



Ya que tenemos la extensión, esta se va a encargar de forma transparente de lo que habíamos conversado anteriormente, y es la dificultad de trabajar con archivos CSV y la forma en que el contenido estaba estructurado con comas dentro de un solo campo.

Ahora imaginemos que este es nuestro contenido que debemos colocar en el archivo:
hola, buenas noches, saludos, hasta luego, bienvenido
Como vemos son palabras sencillas de diferentes tipos de saludos y despedidas, ahora vemos como debe quedar nuestro código para llevarlo a un archivo CSV:




Como vemos es una implementación un poco rudimentaria que funciona a la perfección para ayudarnos a darle persistencia a algunos datos que deseemos.

Conexión con MySQL


MySQL es uno de los motores de Bases de Datos más populares sobre todo a nivel de trabajo de aplicaciones web, por lo que es muy común encontrar infraestructuras que lo posean y sobre las que debamos trabajar, ya sea para migrar los datos, o para extender la funcionalidad.

Lo primero que debemos hacer es instalar el módulo conector con npm, para ello podemos utilizar los comandos el siguiente comando:
npm install –g mysql
Veamos como luce cuando lo ejecutamos:


conexiones-bd-nodejs-3.jpg



Una vez que ya tenemos esta dependencia incluida, podemos crear un archivo .js que ejecutaremos con Node.js para probar la conexión, recordemos tener a mano un usuario y su contraseña para poder acceder a MySQL.

Veamos el siguiente código de ejemplo para establecer dicha conexión de forma exitosa:


conexiones-bd-nodejs-4.jpg



Aquí simplemente hemos incluido el módulo, luego hemos creado una variable llamada conexión que es la que se va a encargar de gestionar la apertura de comunicación entre nuestra aplicación y MySQL, nótese como le hemos pasado el usuario, y en el caso de nuestro entorno nuestro password es vacío.

Finalmente con el método query() hemos gestionado la creación de una Base de Datos y luego la hemos seleccionado, si revisamos nuestro servidor MySQL en este momento veremos la nueva Base de Datos creada.

Hay métodos especiales para los manejos de errores que valen la pena que investiguemos, ya que al trabajar con datos es posible encontrarnos en situaciones donde un usuario coloque información maliciosa para intentar romper nuestra aplicación, sobre todo en MySQL que tiene tantos años en el mercado y que tiene unas debilidades del lenguaje bastante identificadas.

Conexión con MongoDB


MongoDB es uno de los motores NoSQL más populares de los últimos años, su popularidad recae en el uso de JavaScript para poder interactuar con los datos y las funcionalidades que ofrece, por lo que su utilización en entornos Node.js es muy aceptada. Además de lo anterior su estructura sin esquemas nos permite una flexibilidad importante a la hora de hacer estructuras de datos en nuestras aplicaciones.

La conexión a este motor desde Node.js es muy sencilla, al igual que con MySQL en primer lugar debemos descargar e instalar con npm el módulo necesario, para ello necesitamos ejecutar el siguiente comando:
npm install mongodb
Esta pequeña instrucción nos va a proveer del driver y de la interfaz para poder acceder al motor de base de datos. Una vez que hemos cumplido con la instalación podemos emplear el siguiente código para hacer la conexión correspondiente:




Vemos que aparte de importar el módulo mongodb hemos llamado al componente MongoClient, este es quien efectivamente nos va a ayudar a establecer la conexión correspondiente, la cual logramos en la siguiente línea a través del método connect, en este le pasamos la ruta donde reside nuestro servidor MongoDB en este caso es localhost y el puerto es el estándar.

Ventajas de utilizar MongoDB
Debido a la naturaleza de MongoDB no es necesario utilizar un comando de creación para la Base de Datos, únicamente con utilizar un nombre si este no existe se crea, y si existe se selecciona. Es importante entender que MongoDB no funciona como un motor de Base de Datos relacional, por lo que los conocimientos que sabemos de MySQL no son aplicables acá, esto lo decimos en el caso que deseamos hacer consultas y otras interacciones, debemos documentarnos.


Conexión con CouchDB


Otra solución muy popular en el campo de NoSQL es CouchDB de la gente de Apache, al igual que MongoDB nos permite utilizar JavaScript de forma nativa, sin embargo su estructura es muy diferente, además que de entrada nos incluye un motor gráfico para administrar nuestras colecciones de datos y documentos.

Para poder interactuar con este motor, debemos instalar un módulo llamado cradle, notamos que a diferencia de los ejemplos anteriores el módulo tiene un nombre diferente al motor de Base de Datos. Lo primero que debemos hacer entonces es instalar cradle, esto lo podemos ver en la siguiente imagen:


conexiones-bd-nodejs-6.jpg



Ya una vez que tenemos cradle instalado podemos crear un archivo .js que contenga lo siguiente:




Notamos que es la cadena más sencilla que hemos visto hasta ahora en él tutorial, y al igual que con MongoDB, no necesitamos especificar un comando de creación de Base de Datos, estas son creadas automáticamente en caso de no existir.

La diferencia primordial entre MongoDB y CouchDB es que el último está hecho para trabajar de forma REST, es decir, a través de peticiones HTTP. Es por ello que el driver cradle es necesario, ya que este genera la estructura adecuada para hacerlo. Existen más extensiones y más motores compatible, como por ejemplo PostgreSQL, o incluso Redis, por mencionar algunos, por lo que si queremos algo en especial podemos buscarlo en Internet que hay mucha documentación disponible, lo interesante es que al haber visto las bases en este tutorial, conoceremos rápidamente como hacer otras conexiones.

Con esto finalizamos este tutorial, hemos visto varias formas de conectarnos a los diferentes motores de Bases de Datos del momento, si bien no es nada complejo es importante manejar esta información ya que nunca sabremos cuando podemos necesitarla en nuestros desarrollos.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X