Pular para o conteúdo

Como se conectar a um banco de dados PostgreSQL usando Node JS

node js e postgreSQL
Compartilhar:

O Node.js oferece muita flexibilidade ao se conectar ao PostgreSQL, mas também simplifica todo o processo.

A maioria dos aplicativos do mundo real interage com bancos de dados de uma forma ou de outra. Os bancos de dados facilitam a persistência, a análise e a interação com os dados.

A maioria das linguagens de programação suporta a conexão de aplicativos a bancos de dados como o PostgreSQL. Aprenda como usar o módulo node-postgres para conectar aplicativos Node ao PostgreSQL.

Como começar

Para começar a se conectar a um banco de dados local, você precisa ter um servidor PostgreSQL instalado.

O PostgresSQL é um dos sistemas de banco de dados relacionais mais comuns devido à sua flexibilidade e poder. Se o seu projeto for complexo ou se você estiver procurando por uma solução que abrace o espírito do código aberto, considere usá-lo como uma alternativa ao MySQL.

Leia também: Aprenda Node JS neste curso especifico de Node, com super projetos práticos dentro do curso!

Criar aplicação Node

A primeira etapa é criar um aplicativo Node que você usará para testar o código de conexão. Na sua pasta preferida, crie uma nova pasta.

pacote fullstack danki code
mkdir postgres-node

Navegue até a pasta que você criou e inicialize o npm.

cd postgres-node
npm init -y

Este comando deve gerar um arquivo package.json.

Em seguida, crie um novo arquivo e nomeie-o como index.js . Você conectará o Node ao PostgreSQL neste arquivo.

Use o módulo node-postgres

O módulo node-postgres é um pacote npm que permite conectar e interagir com um banco de dados PostgreSQL. Você tem duas opções para conectar o Node ao PostgreSQL usando o módulo node-postgres: um único cliente ou um pool de conexões. Então, o que você deve usar?

Se você precisar apenas de uma conexão estática por vez, use um único cliente. No entanto, se você precisar usar várias solicitações ao mesmo tempo, use o pool de conexões.

Instalar node-postgres

Execute o seguinte comando em seu terminal para instalar o node-postgres.

npm install pg

Se você usar o node >= 14.x, precisará instalar o [email protected] posteriormente. Você pode especificar o número da versão adicionando-o ao comando de instalação como este.

npm install pg=8.7.3

Leia também: Aprenda Node JS neste curso especifico de Node, com super projetos práticos dentro do curso!

Conecte-se ao PostgreSQL

O módulo node-postgres requer os seguintes valores para se conectar a um banco de dados PostgreSQL.

CURSO GRATUITO DE DESENVOLVIMENTO WEB
  • PGUSER – O nome de usuário do PostgreSQL ao qual se conectar.
  • PGHOST – O nome do host do servidor ao qual se conectar.
  • PGPASSWORD – Senha do servidor PostgreSQL.
  • PGD​​ATABASE – O nome do banco de dados ao qual você deseja se conectar.
  • PGPORT – O número da porta para se conectar ao host do servidor.

Crie um arquivo .env e adicione essas variáveis, substituindo os valores correspondentes do banco de dados:

PGUSER=<PGUSER>
PGHOST=<PGHOST>
PGPASSWORD=<PGPASSWORD>
PGDATABASE=<PGDATABASE>
PGPORT=<PGPORT>

Instale o pacote dotenv para acessar o arquivo .env.

npm install dotenv

Em index.js , importe e configure dotenv.

const dotenv = require("dotenv")
dotenv.config()

Leia também: Aprenda Node JS neste curso especifico de Node, com super projetos práticos dentro do curso!

Conecte-se a um banco de dados PostgreSQL com um único cliente

O código a seguir mostra como conectar o Node a um servidor PostgreSQL usando um único cliente.

const { Client } = require("pg")
const dotenv = require("dotenv")
dotenv.config()
 
const connectDb = async () => {
    try {
        const client = new Client({
            user: process.env.PGUSER,
            host: process.env.PGHOST,
            database: process.env.PGDATABASE,
            password: process.env.PGPASSWORD,
            port: process.env.PGPORT
        })
 
        await client.connect()
        const res = await client.query('SELECT * FROM some_table')
        console.log(res)
        await client.end()
    } catch (error) {
        console.log(error)
    }
}
 
connectDb()

Usando um pool de conexões

Como já mencionado, um pool de conexões permite que você faça várias solicitações de conexão ao seu servidor.

const { Pool } = require("pg");
const dotenv = require("dotenv");
dotenv.config();
 
const connectDb = async () => {
    try {
        const pool = new Pool({
            user: process.env.PGUSER,
            host: process.env.PGHOST,
            database: process.env.PGDATABASE,
            password: process.env.PGPASSWORD,
            port: process.env.PGPORT,
        });
 
        await pool.connect()
        const res = await pool.query('SELECT * FROM clients')
        console.log(res)
        await pool.end()
    } catch (error) {
        console.log(error)
    }
}
 
connectDb()

Leia também: Aprenda Node JS neste curso especifico de Node, com super projetos práticos dentro do curso!

O exemplo acima permite controlar a configuração do banco de dados através do arquivo .env. No entanto, você também pode usar variáveis ​​de ambiente padrão para fornecer esses valores de configuração. Essa abordagem permite que você altere facilmente a configuração no momento da inicialização.

CURSO GRATUITO DE PYTHON

Considere o seguinte código de conexão.

const connectDb = async () => {
    try {
        const pool = new Pool();
        const res = await pool.query('SELECT * FROM clients')
        console.log(res)
        await pool.end()
    } catch (error) {
        console.log(error)
    }
}

Neste programa, você não passou um objeto de conexão como parâmetro ao inicializar o pool. Em vez disso, você deve especificar os detalhes da conexão ao chamar o programa, assim:

PGUSER=<PGUSER> \
PGHOST=<PGHOST> \
PGPASSWORD=<PGPASSWORD> \
PGDATABASE=<PGDATABASE> \
PGPORT=<PGPORT> \
node index.js

Conectar o Node ao PostgreSQL dessa forma permite escrever programas mais reutilizáveis.

Faça mais com o PostgreSQL

Para criar um aplicativo que interage com um banco de dados, você deve primeiro conectá-lo ao banco de dados. Neste artigo, você aprendeu como usar o módulo node-Postgres para conectar o Node a um banco de dados PostgreSQL.

Além do PostgreSQL, você também pode usar outros sistemas de gerenciamento de banco de dados em sua aplicação, como MySQL. A ferramenta de banco de dados escolhida deve ser mais compatível com suas necessidades de dados.

Leia também: Curso de CSS 3

Brayan Monteiro

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.

Participe da conversa

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

três × 2 =