¿Cómo usar bases de datos Postgres con Node.js?

Node.js va más allá de las bases de datos NoSQL y puede integrarse con cualquier motor como Postgres.

Node.js es especialmente conocido por trabajar de maravilla con bases de datos no relacionales como Mongo, esto debido principalmente a que ambos usan javascript en sus procesos, pero Node.js va más allá de solo Mongo y puede conectarse a cualquier base de datos relacional tal como se haría con otras tecnologias backend.

En este artículo te enseñare el modulo pg el cuál ofrece características muy interesantes cómo:

  1. Consultas parametrizadas
  2. Connection pooling
  3. Coercion de datos entre Javascript y postgres

Para comenzar a usar pg en nuestros proyecto primero que todo debemos instalarlo con el siguiente comando:

 npm install pg

Ahora vamos a importar el cliente de pg en nuestro proyecto con la siguiente línea de código:

const { Client } = require('pg')

Este cliente nos permitira realizar nuestra conexión y hacer las consultas a la base de datos y como siguiente paso vamos a realizar la configuración de nuestra conexión:

const connectionData = {
  user: 'alejandro',
  host: '',
  database: 'evaluaciones',
  password: 'mysecretpassword',
  port: 5432,
}
const client = new Client(connectionData)

Primero que todo estamos creando un objeto que contiene, el usuario de la base de datos, el host, la base de datos a la cuál queremos conectarnos, la contraseña del usuario y el puerto donde se encuentra postgres que generalmente es el puerto 5432.

Ya con esto realizado podemos realizar nuestra consulta de la siguiente manera:

client.connect()
client.query('SELECT * FROM table')
    .then(response => {
        console.log(response.rows)
        client.end()
    })
    .catch(err => {
        client.end()
    })

Primero estamos abriendo nuestra conexion a la base de datos, despues ejecutamos el metodo query() que como parametro recibe un string con la consulta que se quiere realizar. Este método devuelve una promesa que en caso de ser exitosa nos devuelve los datos de nuestra consulta en la propiedad rows de la respuesta, y por último estamos cerrando nuestra conexión. 

Si quieres saber más de estas tecnologías tenemos los siguientes cursos:

Sigue leyendo