NODE.js el entorno de ejecución para JavaScript volumen 3

VIE, 9 / ABR / 2021
Tapa NODE.js Volumen 3

Para empezar

Esta es la tercera entrega de NODE js, se trata de una colección de 3 ebook en la que encontrarás todo lo que necesitas sobre este entorno de ejecución para JavaScript. La colección es exclusiva de RedUSERS PREMIUM y puedes accederla en los siguientes links: NODE js v1; NODE js v2 y NODE js v3. A continuación, los primeros temas correspondientes al Vol. 3

Conexión a una base de datos

Cuando estás diseñando un sistema informático y surge la necesidad de que la información persista más allá de la ejecución del programa, seguramente tendrás que utilizar un motor de base de datos.

Bases de datos SQL y NoSQL

Existen varios tipos de motores de bases de datos; entre los más populares puedes encontrar los relacionales y los no relacionales, también conocidos como SQL y NoSQL. Node.js permite conectarse a los más populares y usados en el mercado. El medio para poder hacerlo y operar sobre ellos es a través de distintas librerías, dependiendo del tipo de motor.

En la actualidad, existe un gran número de motores de bases de datos disponibles en el mercado. Entre los más conocidos puedes encontrar MSSQL (Microsoft SQL Server), PostgreSQL, MySQL y MongoDB. Dentro de este grupo, están los que son de tipo SQL o relacionales, como MSSQL, PostgreSQL y MySQL; y los de tipo NoSQL o no relacionales, como MongoDB. El uso de cada tipo de motor dependerá de la naturaleza del negocio al cual esté respondiendo el sistema.

Bases de datos SQL o relacionales

Las bases de datos de tipo SQL comenzaron a utilizarse aproximadamente en la década de 1980. Una base de datos relacional se caracteriza por su capacidad de vincular datos entre diferentes unidades de información, llamadas tablas. Estos vínculos se establecen mediante reglas y restricciones aplicadas sobre las tablas.

Cada unidad de información o tabla cuenta con atributos, también conocidos como columnas. Cada instancia de esta unidad de información se guarda dentro de un registro o fila. Una tabla puede contar con la restricción de que uno de sus atributos no se repita a través de sus instancias; esto se conoce como clave primaria.

También es posible relacionar dos o más tablas a través de sus claves primarias, lo que se conoce como relación establecida por clave foránea. El lenguaje que se utiliza para navegar y obtener los datos de las tablas se denomina Lenguaje de Consulta Estructurado (Structured Query Language, o SQL por su nombre en inglés).

Una de las sentencias más importantes de este lenguaje es JOIN, que permite obtener datos cruzando la información de varias tablas al mismo tiempo en una sola consulta. El diseño de una base de datos relacional por lo general queda plasmado en un gráfico de tablas con sus atributos llamados columnas y el vínculo entre tablas graficado mediante flechas o conectores representando sus claves foráneas.

En la imagen que se muestra a continuación puedes observar un ejemplo de un diseño de una base de datos relacional donde se presentan las tablas Clientes, ClientesTelefonos, ClientesDirecciones, Direcciones y Ciudades. Luego, cada relación indica que un cliente puede tener uno o más teléfonos, una o más direcciones, y que cada dirección pertenece a una ciudad.

Bases de datos NoSQL o no relacionales

Como su mismo nombre lo indica, las bases de datos de tipo no relacionales o NoSQL son casi lo opuesto a las SQL. El uso de este tipo de bases de datos es más reciente: su auge comenzó a partir del año 2010.

Las unidades de información en estas bases se llaman documentos, y estos se encuentran agrupados en colecciones. Es posible establecer relaciones entre diferentes tipos de documentos, pero de una manera menos estricta que con las bases de datos SQL. El formato que suele utilizarse para representar un documento es la Notación de Objetos de JavaScript (también conocido como JavaScript Object Notation, o JSON por su nombre en inglés). Un ejemplo de un documento utilizado para almacenar información podría ser el que se presenta en la siguiente imagen.

En este caso puedes observar que la información guardada es similar a la del ejemplo de SQL, solo que el formato de tablas se trasladó al formato JSON.

Operar sobre diferentes motores

A continuación, verás una serie de ejemplos paso a paso que explican cómo conectarse a diferentes tipos de motores de bases de datos utilizando Node.js. Además, ejecutarás operaciones mediante el Lenguaje de Manipulación de Datos (Data Manipulation Language, o DML por su nombre en inglés). Los motores elegidos para los ejemplos son MSSQL (Microsoft SQL Server), PostgreSQL, MySQL y MongoDB.

MSSQL o Microsoft SQL Server

Microsoft SQL Server es un sistema que se utiliza para gestionar bases de datos de tipo relacionales. El lenguaje empleado para operar sobre una base de datos MSSQL se llama Transact-SQL o T-SQL.

Librería de conexión

La librería de Node.js que utilizarás para conectarte y ejecutar operaciones sobre el servidor de MSSQL se llama node-mssql. Su página oficial es https://github.com/tediousjs/node-mssql.

Configuraciones adicionales del servidor

Antes de conectarte al servidor MSSQL utilizando la librería node-mssql, debes contar con una instancia de SQL Server instalada y realizar algunas configuraciones. La versión empleada para este ejemplo es SQL Server 2019 Developer Edition, que es de uso libre para fines de desarrollo y ambientes no productivos.

El nombre de la instancia será SQLSERVER2019. También utilizarás el entorno gráfico SQL Server Management Studio, que te permitirá operar sobre la instancia del servidor de una manera más simple y visual. Una vez que tengas todo instalado, procederás a hacer algunas configuraciones que se indican en la guía paso a paso detallada a continuación:

PASO 1

Abre el Administrador de Configuración de SQL Server. Puedes encontrarlo bajo el grupo de opciones de menú de SQL Server 2019.

PASO 2

Dirígete a la sección Servicios de SQL Server, y asegúrate de que los servicios SQL Server y SQL Server Browser estén iniciados. Puedes verificarlo ya que, si están iniciados, verás la imagen del símbolo “play” en color verde adjunta al icono de cada uno. De lo contrario, si están detenidos, aparecerá la imagen de un símbolo “stop” de color rojo. En este último caso, haz clic con el botón derecho del mouse sobre los respectivos servicios y elige Iniciar.

PASO 3

Luego, en la misma pantalla, ve a la sección Configuración de red de SQL Server/Protocolos de SQLSERVER2019 y habilita el protocolo TCP/IP. Luego de este cambio, tendrás que reiniciar el servicio de SQL Server.

PASO 4

Otro requisito será que la instancia de SQL Server admita el modo de autenticación de tipo SQL Server y Windows. Para ello, ingresa en las propiedades de Seguridad de la instancia utilizando la herramienta SQL Management Studio, y asegúrate de que así esté configurado.

PASO 5

Ahora es momento de crear la base de datos con la que vas a trabajar. En este ejemplo, la base se llamará MSSQLNodeJS. Luego de crearla, ejecuta el siguiente script para generar las tablas:

Si todo funcionó correctamente, deberías contar con las dos tablas creadas en el script.

PASO 6

Por último, inicializa los datos de las tablas ejecutando el siguiente script:

PASO 7

Para validar que todo haya funcionado correctamente, podrías ejecutar la siguiente consulta y obtendrás el resultado que se muestra en la imagen.

Ejemplo de operaciones DML utilizando Node.js

Ahora sí, una vez que terminaste de configurar e inicializar los datos de tu servidor, es momento de comenzar con el ejemplo de Node.js. Para esto, haremos una guía paso a paso sobre la forma de conectarte a MSSQL, y hacer operaciones para leer y guardar datos en la base:

PASO 1

Crea un directorio de trabajo donde vas a generar los archivos del ejemplo. Luego, procede a inicializar el proyecto de Node.js. Para hacerlo, desde una ventana de línea de comandos y ubicado en el directorio recién creado, ejecuta el comando npm init y completa las preguntas necesarias para crear el archivo package.json

PASO 2

Una vez ejecutado este comando, instala la librería cliente que te permitirá conectarte y operar sobre SQL Server. Para hacerlo, ejecuta el comando npm install mssql. Cuando termine la instalación, crea un archivo llamado node_mssql.js y copia el siguiente código en él:

En este ejemplo de código, puedes observar cómo primero se inicializa el pool de conexión con la función ConnectionPool, pasándole como parámetro de configuración el valor correspondiente contenido en la variable config. Aquí es importante remarcar que para este ejemplo se utilizó el usuario redusers con la contraseña redusers.

Luego, en la función Consulta primero se asegura que el pool de conexión se encuentre inicializado, para luego invocar al método query con la consulta respectiva. El resultado de la consulta se obtiene de la propiedad recordsetperteneciente a la variable llamada resultado.

PASO 3

Si ejecutas el código con el comando node node_mssql.js, podrás ver el resultado por consola.

PASO 4

Por último, ejecuta un Insert de un nuevo cliente. Para esto, dirígete al final del archivo node_mssql.js y copia el siguiente código:

En esta segunda parte del ejemplo, la mayor diferencia es que, primero, se crea una transacción, para luego ejecutar el Insert del nuevo cliente.

PASO 5

Vuelve a ejecutar el comando node node_mssql.js y, para verificar si todo funcionó correctamente, ve al SQL Management Studio y realiza la siguiente consulta

Podrás ver que se agregó el nuevo cliente con id igual a 4 llamado Cliente 4

Aprende más sobre NODE js, leyendo la edición completa de este ebook en RedUSERS PREMIUM

Cada mes, lanzamos 2 ebooks USERS, en ellos tratamos en profundidad el tema abordado. En cada ebook, nuestros EXPERTOS vuelcan todos sus conocimientos con el objetivo de brindar una experiencia de capacitación satisfactoria para nuestros lectores.


Lee lo que quieras, donde vayas, por una mínima cuota mensual: SUSCRIBETE!


¡Comparte esta noticia!