Avvio rapido: Usare Node.js per connettersi ed eseguire query sui dati in Database di Azure per PostgreSQL - Server singolo

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere Che cosa accade a Database di Azure per PostgreSQL server singolo?

In questa guida di avvio rapido ci si connette a un'istanza di Database di Azure per PostgreSQL usando un'applicazione Node.js. Spiega come usare le istruzioni SQL per eseguire query, inserire, aggiornare ed eliminare dati nel database. Le procedure descritte in questo articolo presuppongono che si abbia familiarità con lo sviluppo con Node.js, ma non con Database di Azure per PostgreSQL.

Prerequisiti

Installare il client pg

Installare pg, un client PostgreSQL per Node.js.

A tale scopo, eseguire Node Package Manager (npm) per JavaScript dalla riga di comando per installare il client pg.

npm install pg

Verificare l'installazione elencando i pacchetti installati.

npm list

Ottenere informazioni di connessione

Ottenere le informazioni di connessione necessarie per connettersi al database di Azure per PostgreSQL. Sono necessari il nome del server completo e le credenziali di accesso.

  1. Nel portale di Azure cercare e selezionare il server creato, ad esempio mydemoserver.

  2. Nel pannello Panoramica del server prendere nota dei valori riportati in Nome server e Nome utente amministratore. Se si dimentica la password, in questo pannello è anche possibile reimpostarla.

    Stringa di connessione di Database di Azure per PostgreSQL

Esecuzione del codice JavaScript in Node.js

È possibile avviare Node.js dalla shell Bash, da Terminal o dal Prompt dei comandi di Windows digitando node, quindi eseguire l'esempio di codice JavaScript in modo interattivo copiandolo e incollandolo nel prompt. In alternativa è possibile salvare il codice JavaScript in un file di testo e avviare node filename.js con il nome del file come parametro per l'esecuzione.

Connettersi, creare tabelle e inserire dati

Usare il codice seguente per connettersi e caricare i dati usando le istruzioni CREATE TABLE e INSERT INTO SQL. L'oggetto pg.Client viene usato per l'interfaccia con il server PostgreSQL. La funzione pg.Client.connect() viene usata per stabilire la connessione al server. La funzione pg.Client.query() viene usata per eseguire la query SQL sul database PostgreSQL.

Sostituire i parametri host, dbname, user e password con i valori specificati al momento della creazione del server e del 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();
        });
}

Leggere i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL SELECT. L'oggetto pg.Client viene usato per l'interfaccia con il server PostgreSQL. La funzione pg.Client.connect() viene usata per stabilire la connessione al server. La funzione pg.Client.query() viene usata per eseguire la query SQL sul database PostgreSQL.

Sostituire i parametri host, dbname, user e password con i valori specificati al momento della creazione del server e del 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);
        });
}

Aggiornare i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL UPDATE. L'oggetto pg.Client viene usato per l'interfaccia con il server PostgreSQL. La funzione pg.Client.connect() viene usata per stabilire la connessione al server. La funzione pg.Client.query() viene usata per eseguire la query SQL sul database PostgreSQL.

Sostituire i parametri host, dbname, user e password con i valori specificati al momento della creazione del server e del 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;
        });
}

Eliminare i dati

Usare il codice seguente per connettersi e leggere i dati usando un'istruzione SQL DELETE. L'oggetto pg.Client viene usato per l'interfaccia con il server PostgreSQL. La funzione pg.Client.connect() viene usata per stabilire la connessione al server. La funzione pg.Client.query() viene usata per eseguire la query SQL sul database PostgreSQL.

Sostituire i parametri host, dbname, user e password con i valori specificati al momento della creazione del server e del 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;
        });
}

Pulire le risorse

Per pulire tutte le risorse usate in questo argomento di avvio rapido, eliminare il gruppo di risorse con il comando seguente:

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

Passaggi successivi