Guia de início rápido: usar Node.js para conectar e consultar dados no Banco de Dados do Azure para PostgreSQL - Servidor Único
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único
Importante
O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.
Neste início rápido, você se conecta a um Banco de Dados do Azure para PostgreSQL usando um aplicativo Node.js. Explica como utilizar as instruções SQL para consultar, inserir, atualizar e eliminar dados da base de dados. Os passos neste artigo pressupõem que está familiarizado com a programação com Node.js e que nunca trabalhou com a Base de Dados do Azure para PostgreSQL.
Pré-requisitos
Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
Conclusão do Guia de início rápido: criar um banco de dados do Azure para o servidor PostgreSQL no portal do Azure ou Guia de início rápido: criar um banco de dados do Azure para PostgreSQL usando a CLI do Azure.
Instalar o cliente pg
Instale o pg, que é um cliente PostgreSQL para Node.js.
Para isso, execute o gestor de pacotes de nós (npm) para JavaScript a partir da linha de comandos para instalar o cliente pg.
npm install pg
Verifique a instalação através de uma lista de pacotes instalados.
npm list
Obter informações da ligação
Obtenha as informações de ligação necessárias para se ligar à Base de Dados do Azure para PostgreSQL. Necessita do nome do servidor e das credenciais de início de sessão totalmente qualificados.
No portal do Azure, procure e selecione o servidor que você criou (como mydemoserver).
No painel Visão geral do servidor, anote o nome do servidor e o nome de usuário do administrador. Caso se esqueça da sua palavra-passe, também pode repor a palavra-passe neste painel.
Executar o código JavaScript no Node.js
Pode iniciar o Node.js a partir do Bash shell, Terminal ou da Linha de Comandos do Windows ao introduzir node
e, em seguida, executar o exemplo de código JavaScript, de forma interativa, copiando-o e colando-o na linha. Como alternativa, pode guardar o código JavaScript num ficheiro de texto e iniciar node filename.js
com o nome do ficheiro como um parâmetro para o executar.
Ligar, criar tabela e inserir dados
Utilize o seguinte código para se ligar e carregar os dados com as instruções SQL CREATE TABLE e INSERT INTO. O objeto pg.Client é utilizado para comunicar com o servidor PostgreSQL. A função pg. Client.Connect() é utilizada para estabelecer ligação com o servidor. A função pg. Client.Query() é utilizada para executar a consulta SQL na base de dados PostgreSQL.
Substitua os parâmetros do sistema anfitrião, nome da base de dados, utilizador e palavra-passe pelos valores que especificou ao criar o servidor e a base de dados.
const pg = require('pg');
const config = {
host: '<your-db-server-name>.postgres.database.azure.com',
// Do not hard code your username and password.
// Consider using Node environment variables.
user: '<your-db-username>',
password: '<your-password>',
database: '<name-of-database>',
port: 5432,
ssl: true
};
const client = new pg.Client(config);
client.connect(err => {
if (err) throw err;
else {
queryDatabase();
}
});
function queryDatabase() {
const query = `
DROP TABLE IF EXISTS inventory;
CREATE TABLE inventory (id serial PRIMARY KEY, name VARCHAR(50), quantity INTEGER);
INSERT INTO inventory (name, quantity) VALUES ('banana', 150);
INSERT INTO inventory (name, quantity) VALUES ('orange', 154);
INSERT INTO inventory (name, quantity) VALUES ('apple', 100);
`;
client
.query(query)
.then(() => {
console.log('Table created successfully!');
client.end(console.log('Closed client connection'));
})
.catch(err => console.log(err))
.then(() => {
console.log('Finished execution, exiting now');
process.exit();
});
}
Ler dados
Utilize o código seguinte para se ligar e ler dados com uma instrução SQL SELECT. O objeto pg.Client é utilizado para comunicar com o servidor PostgreSQL. A função pg. Client.Connect() é utilizada para estabelecer ligação com o servidor. A função pg. Client.Query() é utilizada para executar a consulta SQL na base de dados PostgreSQL.
Substitua os parâmetros do sistema anfitrião, nome da base de dados, utilizador e palavra-passe pelos valores que especificou ao criar o servidor e a base de dados.
const pg = require('pg');
const config = {
host: '<your-db-server-name>.postgres.database.azure.com',
// Do not hard code your username and password.
// Consider using Node environment variables.
user: '<your-db-username>',
password: '<your-password>',
database: '<name-of-database>',
port: 5432,
ssl: true
};
const client = new pg.Client(config);
client.connect(err => {
if (err) throw err;
else { queryDatabase(); }
});
function queryDatabase() {
console.log(`Running query to PostgreSQL server: ${config.host}`);
const query = 'SELECT * FROM inventory;';
client.query(query)
.then(res => {
const rows = res.rows;
rows.map(row => {
console.log(`Read: ${JSON.stringify(row)}`);
});
process.exit();
})
.catch(err => {
console.log(err);
});
}
Atualizar dados
Utilize o código seguinte para se ligar e ler dados com uma instrução SQL UPDATE. O objeto pg.Client é utilizado para comunicar com o servidor PostgreSQL. A função pg. Client.Connect() é utilizada para estabelecer ligação com o servidor. A função pg. Client.Query() é utilizada para executar a consulta SQL na base de dados PostgreSQL.
Substitua os parâmetros do sistema anfitrião, nome da base de dados, utilizador e palavra-passe pelos valores que especificou ao criar o servidor e a base de dados.
const pg = require('pg');
const config = {
host: '<your-db-server-name>.postgres.database.azure.com',
// Do not hard code your username and password.
// Consider using Node environment variables.
user: '<your-db-username>',
password: '<your-password>',
database: '<name-of-database>',
port: 5432,
ssl: true
};
const client = new pg.Client(config);
client.connect(err => {
if (err) throw err;
else {
queryDatabase();
}
});
function queryDatabase() {
const query = `
UPDATE inventory
SET quantity= 1000 WHERE name='banana';
`;
client
.query(query)
.then(result => {
console.log('Update completed');
console.log(`Rows affected: ${result.rowCount}`);
})
.catch(err => {
console.log(err);
throw err;
});
}
Eliminar dados
Utilize o código seguinte para se ligar e ler os dados com uma instrução SQL DELETE. O objeto pg.Client é utilizado para comunicar com o servidor PostgreSQL. A função pg. Client.Connect() é utilizada para estabelecer ligação com o servidor. A função pg. Client.Query() é utilizada para executar a consulta SQL na base de dados PostgreSQL.
Substitua os parâmetros do sistema anfitrião, nome da base de dados, utilizador e palavra-passe pelos valores que especificou ao criar o servidor e a base de dados.
const pg = require('pg');
const config = {
host: '<your-db-server-name>.postgres.database.azure.com',
// Do not hard code your username and password.
// Consider using Node environment variables.
user: '<your-db-username>',
password: '<your-password>',
database: '<name-of-database>',
port: 5432,
ssl: true
};
const client = new pg.Client(config);
client.connect(err => {
if (err) {
throw err;
} else {
queryDatabase();
}
});
function queryDatabase() {
const query = `
DELETE FROM inventory
WHERE name = 'apple';
`;
client
.query(query)
.then(result => {
console.log('Delete completed');
console.log(`Rows affected: ${result.rowCount}`);
})
.catch(err => {
console.log(err);
throw err;
});
}
Clean up resources (Limpar recursos)
Para limpar todos os recursos usados durante este início rápido, exclua o grupo de recursos usando o seguinte comando:
az group delete \
--name $AZ_RESOURCE_GROUP \
--yes