Quickstart: Node.js gebruiken om verbinding te maken met en query's uit te voeren op gegevens in Azure Database for PostgreSQL - Enkele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

In deze quickstart gebruikt u een Node.js-toepassing om verbinding te maken met Azure Database for PostgreSQL. U ziet hier hoe u SQL-instructies gebruikt om gegevens in de database op te vragen, in te voegen, bij te werken en te verwijderen. In de stappen van dit artikel wordt ervan uitgegaan dat u bekend bent met het ontwikkelen met behulp van Node.js en geen ervaring hebt met het werken met Azure Database for PostgreSQL.

Vereisten

pg-client installeren

Installeer pg. Dit is een PostgreSQL-client voor Node.js.

Voer de Node Package Manager (NPM) voor JavaScript uit vanaf de opdrachtregel om de pg-client te installeren.

npm install pg

Controleer de installatie door de geïnstalleerde pakketten weer te geven.

npm list

Verbindingsgegevens ophalen

Haal de verbindingsgegevens op die nodig zijn om verbinding te maken met de Azure Database voor PostgreSQL. U hebt de volledig gekwalificeerde servernaam en aanmeldingsreferenties nodig.

  1. Zoek en selecteer in de Azure-portal de server die u hebt gemaakt (zoals mydemoserver).

  2. Ga naar het venster Overzicht van de server en noteer de Servernaam en de Gebruikersnaam van beheerder. Als u uw wachtwoord vergeet, kunt u het wachtwoord in dit venster opnieuw instellen.

    Azure Database for PostgreSQL-verbindingsreeks

De JavaScript-code in Node.js uitvoeren

U kunt Node.js starten vanuit de Bash-shell, Terminal of opdrachtprompt van Windows door node in te voeren. Voer vervolgens de JavaScript-voorbeeldcode interactief uit door deze te kopiëren en in de prompt te plakken. U kunt de JavaScript-code ook in een tekstbestand opslaan en node filename.js starten met de bestandsnaam als parameter om de code uit te voeren.

Verbinden, tabel maken en gegevens invoegen

Gebruik de volgende code om verbinding te maken en de gegevens te laden met de SQL-instructies CREATE TABLE EN INSERT INTO. Het object pg.Client wordt gebruikt voor interactie met de PostgreSQL-server. De functie pg.Client.Connect() wordt gebruikt om verbinding met de server te maken. De functie pg.Client.query() wordt gebruikt om de SQL-query uit te voeren op de PostgreSQL-database.

Vervang de parameters host, dbname, user en password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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

Gegevens lezen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie SELECT. Het object pg.Client wordt gebruikt voor interactie met de PostgreSQL-server. De functie pg.Client.Connect() wordt gebruikt om verbinding met de server te maken. De functie pg.Client.query() wordt gebruikt om de SQL-query uit te voeren op de PostgreSQL-database.

Vervang de parameters host, dbname, user en password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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);
        });
}

Gegevens bijwerken

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie UPDATE. Het object pg.Client wordt gebruikt voor interactie met de PostgreSQL-server. De functie pg.Client.Connect() wordt gebruikt om verbinding met de server te maken. De functie pg.Client.query() wordt gebruikt om de SQL-query uit te voeren op de PostgreSQL-database.

Vervang de parameters host, dbname, user en password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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;
        });
}

Gegevens verwijderen

Gebruik de volgende code om verbinding te maken en de gegevens te lezen met de SQL-instructie DELETE. Het object pg.Client wordt gebruikt voor interactie met de PostgreSQL-server. De functie pg.Client.Connect() wordt gebruikt om verbinding met de server te maken. De functie pg.Client.query() wordt gebruikt om de SQL-query uit te voeren op de PostgreSQL-database.

Vervang de parameters host, dbname, user en password door de waarden die u hebt opgegeven tijdens het maken van de server en database.

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;
        });
}

Resources opschonen

Als u alle resources wilt opschonen die tijdens deze quickstart zijn gebruikt, verwijdert u de resourcegroep. Dit kan met de volgende opdracht:

az group delete \
    --name $AZ_RESOURCE_GROUP \
    --yes

Volgende stappen