custom background image

Cómo acceder a PostgreSQL desde una aplicación Node.js


Acceder a una base de datos PostgreSQL desde una aplicación Node.js

Objetivo

Esta guía explica cómo acceder a una base de datos PostgreSQL desde una aplicación Node.js.

Node.js es uno de los entornos de ejecución JavaScript orientado a eventos asíncronos más populares del mercado. Su amplia adopción en los últimos años lo convierte en una plataforma imprescindible en el mundo del desarrollo. Para más información sobre todas las posibilidades que ofrece la plataforma Node.js, consulte la documentación oficial.

PostgreSQL, por su parte, es una de las bases de datos más conocidas en todo el mundo: su facilidad de uso y su enfoque open source son algunas de las ventajas que explican su enorme popularidad. Para más información sobre todas las posibilidades que ofrece la plataforma PostgreSQL, consulte la documentación oficial.

 

Requisitos

Para poder seguir los pasos que se indican en esta guía, necesitará disponer de una instancia Compute del universo Public Cloud de OVHcloud, un VPS o un servidor Bare Metal con Ubuntu 22.04, y tener conocimientos básicos sobre el funcionamiento de una CLI. En esta guía hemos utilizado una instancia Compute de Public Cloud. Si necesita ayuda para instalar una instancia Public Cloud con Ubuntu 22.04, consulte nuestra guía «Crear y conectarse a una instancia de Public Cloud».

Asimismo, también necesitará instalar Node.js y Postgre en su instancia previamente. Para más información, consulte las siguientes guías:

Cómo instalar Node.js en Ubuntu 22.04.
Cómo instalar una base de datos PostgreSQL en Ubuntu 22.04.

Puede utilizar un entorno de desarrollo integrado (IDE) para simplificar la manipulación de los archivos fuente descritos en esta guía: VS Code, WebStorm, etc.

 

Instrucciones

Instale la biblioteca node-postgres de Node.js para poder utilizarla en las aplicaciones Node.js.

Durante la redacción de esta guía, la última versión LTS de la biblioteca node-postgres disponible es la versión 8.7.3.

 

Activación del proyecto

En primer lugar, cree una carpeta llamada nodejs-pg-example y ejecute el comando NPM init:

mkdir nodejs-pg-example cd nodejs-pg-example npm init

Deberá obtener un resultado similar al que se incluye a continuación:

$ mkdir nodejs-pg-example
$ cd nodejs-pg-example
$:~/nodejs-pg-example$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help init` for definitive documentation on these fields
and exactly what they do.

Use `npm install ` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (nodejs-pg-example) 
version: (1.0.0) 
description: Example project to access PostgreSQL from a Node.js application
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: OVHcloud
license: (ISC) 
About to write to /home/ubuntu/nodejs-pg-example/package.json:

{
  "name": "nodejs-pg-example",
  "version": "1.0.0",
  "description": "Example project to access PostgreSQL from a Node.js application",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "OVHcloud",
  "license": "ISC"
}


Is this OK? (yes) yes

Se ha creado un archivo package.json en la carpeta nodejs-pg-example:

{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC" }

 

Creación de elementos PostgreSQL

Para completar el siguiente paso, deberá tener instalada una base de datos PostgreSQL.

Cree una tabla con el nombre example_table:

CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));

Deberá obtener un resultado similar al que se incluye a continuación:

foo@ubuntu:~$ psql -d example
psql (14.2 (Ubuntu 14.2-1ubuntu1))
Type "help" for help.

example=> CREATE TABLE example_table (id INT PRIMARY KEY NOT NULL, message CHAR(50));
CREATE TABLE

A continuación, introduzca la información:

INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.'); INSERT INTO example_table (id, message) VALUES (2, '👋 Hola, mundo.');

Deberá obtener un resultado similar al que se incluye a continuación:

example=> INSERT INTO example_table (id, message) VALUES (1, '👋 Hello World.');
INSERTAR 0 1
example=> INSERT INTO example_table (id, message) VALUES (2, '👋 Hola, mundo.');
INSERTAR 0 1
salir
foo@ubuntu:~$ 

 

Configuración de la aplicación para acceder a la base de datos PostgreSQL

En primer lugar, deberá añadir la dependencia a la biblioteca node-postgres en el archivo package.json. Para ello, acceda a la carpeta nodejs-pg-example y utilice el comando NPM para añadir la biblioteca:

npm install pg

Deberá obtener un resultado similar al que se incluye a continuación:

~/nodejs-pg-example$ npm install pg

added 15 packages, and audited 16 packages in 2s

found 0 vulnerabilities

El archivo package.json ha sido actualizado por NPM:

{ "name": "nodejs-pg-example", "version": "1.0.0", "description": "Example project to access PostgreSQL from a Node.js application", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "OVHcloud", "license": "ISC", "dependencies": { "pg": "^8.7.3" } }

Ya puede comenzar a escribir el código Javascript para acceder a la base de datos.

 

Acceso a la base de datos con la aplicación

Cree un archivo denominado HelloWorld.js en la carpeta nodejs-pg-example y pegue el siguiente código en el archivo:

const { Client } = require('pg') async function sayHello() { const client = new Client({ user: 'foo', password: 'bar', database: 'example' }) await client.connect() const res = await client.query('SELECT * FROM example_table') console.log(res.rows[0].message) // 👋 Hello world. console.log(res.rows[1].message) // 👋 Hola, mundo. await client.end() } sayHello()

A continuación, ejecute el siguiente código:

node HelloWorld.js

Deberá obtener un resultado similar al que se incluye a continuación:

$ node HelloWorld.js 
👋 Hello World.
👋 Hola, mundo.

¡Enhorabuena! Ya ha escrito correctamente su primera aplicación Node.js para acceder a una base de datos PostgreSQL.

 

Información adicional

Descubra las instancias Public Cloud de OVHcloud.