
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.