UGC bg

Como aceder a um PostgreSQL a partir da aplicação Node.js?


Aceda a uma base de dados PostgreSQL a partir da aplicação Node.js

Objetivo

Neste tutorial, saberá como aceder a uma base de dados PostgreSQL a partir de um aplicação Node.js.

O Node.js é um dos mais famosos runtime JavaScript assíncronos orientados a eventos. A sua adoção alargada nos últimos anos torna-o numa plataforma inevitável no mundo do desenvolvimento. Para obter mais informações e saber mais sobre as capacidades da plataforma Node.js, consulte a documentação oficial.

O PostgreSQL é uma das bases de dados mais famosas do mundo. A sua simplicidade de utilização e a abordagem Open Source são dois fatores importantes para a sua ampla adoção. Para obter mais informações e saber mais sobre as capacidades do PostgreSQL, consulte a documentação oficial.

 

Requisitos

Este tutorial parte do princípio de que dispõe de um Ubuntu 22.04, a correr numa instância de computação OVHcloud, por exemplo. Alguns conhecimentos básicos sobre o seu funcionamento são também necessários. Se não tiver o Ubuntu 22.04, siga este guia para utilizar uma Instância de Computação OVHcloud.

Para saber como instalar a plataforma Node.js, consulte o tutorial Como instalar o Node.js em Ubuntu 22.04.
Para saber como instalar o PostgreSQL, consulte o tutorial Como instalar o PostgreSQL em Ubuntu 22.04.

Pode utilizar um IDE para facilitar a manipulação dos ficheiros de origem deste tutorial, como por exemplo ficheiros VS Code, WebStorm, etc.

 

Instruções

Neste tutorial, primeiro irá instalar a biblioteca node-postgres de Node.js e, depois, irá usá-la na aplicação Node.js.

Aquando da redação deste tutorial, a última versão LTS da biblioteca node-postgres é a 8.7.3.

 

Iniciar o projeto

Primeiro, crie uma pasta nodejs-pg-example e execute o comando NPM init:

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

O resultado deve ser o seguinte:

$ 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

Um ficheiro package.json foi criado na pasta 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" }

 

Criar elementos PostgreSQL

Partimos do princípio que a sua base de dados PostgreSQL está instalada

Primeiro, crie uma tabela chamada example_table:

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

O resultado deve ser o seguinte:

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

Em seguida, insira alguns dados:

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

O resultado deve ser o seguinte:

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

 

Configurar a aplicação para aceder à base de dados PostgreSQL

Primeiro, adicione a dependência à biblioteca node-postgres no ficheiro package.json. Para isso, aceda à pasta nodejs-pg-example e utilize o comando npm para adicionar a biblioteca:

npm install pg

O resultado deve ser o seguinte:

~/nodejs-pg-example$ npm install pg

added 15 packages, and audited 16 packages in 2s

found 0 vulnerabilities

O ficheiro package.json foi atualizado pelo 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" } }

Está agora pronto para escrever o código Javascript que permitirá aceder à base de dados.

 

Aceder à base de dados através da aplicação

Primeiro, crie um ficheiro HelloWorld.js na pasta nodejs-pg-example e cole o seguinte código:

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()

Em seguida, execute o código:

node HelloWorld.js

O resultado deve ser o seguinte:

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

Já está! Escreveu com sucesso a sua primeira aplicação Node.js para aceder a uma base de dados PostgreSQL.

 

Ir mais longe

Consulte as ofertas de instâncias Public Cloud na OVHcloud.