En este tutorial trataremos la conexión de Nodejs con un manejador de base de datos, pero primero ¿qué es una base de datos?
Una base de datos es un conjunto de datos almacenados para su posterior uso. Para poder acceder a estos y manipularlos usamos un manejador de base de datos, entre los más populares están: Oracle, Microsoft SQL Server, MySQL, PostgreSQL y SQLite.
Por motivos de tutorial trataremos SQLite, lo considero el más pedagógico y fácil de usar para desarrollo. Dentro de su carpeta de proyecto pueden instalarlo de 2 formas:
Para ejecutar el proyecto necesitamos al igual que antes situarnos en la carpeta donde se encuentra nuestro archivo y ejecutar desde la consola: node <nombre_de_archivo.js>. En tutorial no tendremos un servidor en ejecución, simplemente haremos operaciones con una base de datos. La integración de este código con uno que incluya un servidor en ejecución podemos llegarla hacer satisfactoriamente por nuestra cuenta, sin embargo en ese punto es donde entran en juego los frameworks web, los cuales harán todo ese trabajo por nosotros de una forma que nuestro proyecto sea legible, escalable y robusto.
1 - Creación de base de datos y consulta
SQLite a diferencia de otros manejadores de base datos se almacena en un solo archivo, es por eso que en el código vemos en la línea 5 un parámetro con el nombre del archivo que deseamos crear/cargar. Otros manejadores de base de datos tienen acceso restringido con administración de usuarios por contraseña y privilegios de uso.
Una base de datos en SQLite tiene una forma de representación de almacenamiento por tablas, donde los atributos están ordenados por columna y una sola instancia se ve representada por una fila. Para ilustrar esto mejor se tiene la siguiente foto, la cual es una vista de una extensión de Mozilla Firefox SQLite Manager.
En este caso tenemos una tabla que se llama personas y tiene como atributos el identificador, nombre y apellido.
Para hacer las operaciones sobre la base de datos usamos la función run, esta ejecuta el string que se le pase como parámetro. Las funciones en la base de datos que vemos en este ejemplo son:
En este ejemplo ya se asume que tienes una base de datos creada, además hago uso de unas buenas prácticas de código, para la lectura segura del archivo, esto se encuentra desde la línea 1 hasta la línea 10. Con respecto a la carga de la base de datos no existe mucha diferencia al compararlo código del ejemplo anterior.
Además quería ilustrar en este ejemplo el uso de varios tipos de valor y los más usados:
Además existen dos propiedades en los atributos que son mostradas en este ejemplo:
3 - CRUD
En este ejemplo ya se asume que tienes una base de datos creada.
Existen 4 funciones básicas dentro de una tabla que permiten gran modularidad del código:
Si algo no queda muy claro siempre me pueden escribir a mi correo tonylattke@gmail.com o también pueden dejar comentarios al final de este post y trataré de ayudarles lo antes posible.
Descarga aquí todos los archivos fuente.
Una base de datos es un conjunto de datos almacenados para su posterior uso. Para poder acceder a estos y manipularlos usamos un manejador de base de datos, entre los más populares están: Oracle, Microsoft SQL Server, MySQL, PostgreSQL y SQLite.
Por motivos de tutorial trataremos SQLite, lo considero el más pedagógico y fácil de usar para desarrollo. Dentro de su carpeta de proyecto pueden instalarlo de 2 formas:
-
Podemos usar el archivo package.json y especificar la librería a usar.
Y para instalarlo ejecutamos en la carpeta del proyecto el comando: npm install. Para más información del manejo de librerías con package.json pueden consultar este enlace. - La segunda opción que tenemos es instalar la librería manualmente con el comando: npm install sqlite3.
Para ejecutar el proyecto necesitamos al igual que antes situarnos en la carpeta donde se encuentra nuestro archivo y ejecutar desde la consola: node <nombre_de_archivo.js>. En tutorial no tendremos un servidor en ejecución, simplemente haremos operaciones con una base de datos. La integración de este código con uno que incluya un servidor en ejecución podemos llegarla hacer satisfactoriamente por nuestra cuenta, sin embargo en ese punto es donde entran en juego los frameworks web, los cuales harán todo ese trabajo por nosotros de una forma que nuestro proyecto sea legible, escalable y robusto.
1 - Creación de base de datos y consulta
SQLite a diferencia de otros manejadores de base datos se almacena en un solo archivo, es por eso que en el código vemos en la línea 5 un parámetro con el nombre del archivo que deseamos crear/cargar. Otros manejadores de base de datos tienen acceso restringido con administración de usuarios por contraseña y privilegios de uso.
Una base de datos en SQLite tiene una forma de representación de almacenamiento por tablas, donde los atributos están ordenados por columna y una sola instancia se ve representada por una fila. Para ilustrar esto mejor se tiene la siguiente foto, la cual es una vista de una extensión de Mozilla Firefox SQLite Manager.
En este caso tenemos una tabla que se llama personas y tiene como atributos el identificador, nombre y apellido.
Para hacer las operaciones sobre la base de datos usamos la función run, esta ejecuta el string que se le pase como parámetro. Las funciones en la base de datos que vemos en este ejemplo son:
- Creación de tabla: Esta tiene como sintaxis básica CREATE TABLE [IF NOT EXISTS] <nombre_tabla> (<nombre_de_atributo> <tipo_de_atributo> [,<nombre_de_atributo> <tipo_de_atributo>]).
- Insertar instancia: Permite crear una instancia dentro de la tabla y tiene como sintaxis básica: INSERT INTO <nombre_tabla> VALUES (<valor>[,<valor>]). Para el ejemplo vemos que se hace uso además de la función prepare, la cual permite realizar estas operaciones de inserción con menos código. Lo más importante de usar esta función de inserción es el orden de los atributos, ya que deben ser colocados en la misma posición en la que se creo la tabla.
- Realizar consulta: Esta función permite seleccionar de la base de datos los valores. La sintaxis básica que posee es: SELECT (* | <nombre_de_atributo> [AS <nombre_de_alias>] [, <nombre_de_atributo> [AS <nombre_de_alias>]]) FROM <nombre_tabla> [,<nombre_tabla>] [WHERE <condición> [, <condición>]]. Para el ejemplo tenemos la función each que ayuda a manipular cada valor que resulte de la consulta.
En este ejemplo ya se asume que tienes una base de datos creada, además hago uso de unas buenas prácticas de código, para la lectura segura del archivo, esto se encuentra desde la línea 1 hasta la línea 10. Con respecto a la carga de la base de datos no existe mucha diferencia al compararlo código del ejemplo anterior.
Además quería ilustrar en este ejemplo el uso de varios tipos de valor y los más usados:
- INTEGER: Representa a los valores de tipo entero.
- TEXT: Representa a los valores de tipo string.
- DATE: Representa fechas y horas.
- REAL: Representa valores de tipo punto flotante.
Además existen dos propiedades en los atributos que son mostradas en este ejemplo:
- PRIMARY KEY: Permite indicar que el atributo sirve de identificador de la instancia en la tabla.
- [NOT] NULL: Indica que el atributo debe tener valor en la instancia. Por defecto en SQLite el atributo puede no tener valor.
3 - CRUD
En este ejemplo ya se asume que tienes una base de datos creada.
Existen 4 funciones básicas dentro de una tabla que permiten gran modularidad del código:
- Create: Crear o insertar instancia. Más sobre la sintaxis de insert: INSERT INTO <nombre_tabla> (<nombre_atributo>[,<nombre_atributo>]) VALUES (<valor>[,<valor>]). La ventaja contra la sintaxis básica es que podemos insertar los valores en el orden que enunciamos los nombres de estos.
- Read: Consultar o leer instancias. A diferencia del ejemplo 1 tenemos la función all, esta permite tener en una lista todos valores que satisfagan las condiciones. Otros operadores sobre las condiciones son: =, ==, <, >=, >, >=, !=, <>, IN, NOT IN, BETWEEN, IS, and IS NOT.
- Update: Actualizar instancia. La sintaxis básica es: UPDATE <nombre_tabla> SET <nombre_atributo>=<valor> [,<nombre_atributo>=<valor>] WHERE <condición>.
- Delete: Eliminar instancias de la tabla. Sintaxis básica: DELETE FROM <nombre_tabla> WHERE <condición>.
Si algo no queda muy claro siempre me pueden escribir a mi correo tonylattke@gmail.com o también pueden dejar comentarios al final de este post y trataré de ayudarles lo antes posible.
Descarga aquí todos los archivos fuente.

No hay comentarios:
Publicar un comentario