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.
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.
- 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.
- PGDATABASE – 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.
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