Snabbstart: Använd Node.js för att ansluta och fråga efter data i Azure Database for PostgreSQL – enskild server

GÄLLER FÖR: Azure Database for PostgreSQL – enskild server

Viktigt!

Azure Database for PostgreSQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till Azure Database for PostgreSQL – flexibel server. Mer information om hur du migrerar till Azure Database for PostgreSQL – flexibel server finns i Vad händer med Azure Database for PostgreSQL – enskild server?.

I den här snabbstarten ansluter du till en Azure Database for PostgreSQL med hjälp av ett Node.js program. Den visar hur du använder SQL-instruktioner för att fråga, infoga, uppdatera och ta bort data i databasen. I den här artikeln förutsätter vi att du har kunskaper om Node.js och att du inte har arbetat med Azure Database for PostgreSQL tidigare.

Förutsättningar

Installera pg-klienten

Installera pg, som är en PostgreSQL-klient för Node.js.

Kör du node package manager (npm) för JavaScript från kommandoraden och installera pg-klienten.

npm install pg

Verifiera installationen genom att visa en lista över de paket som har installerats.

npm list

Hämta anslutningsinformation

Hämta den information som du behöver för att ansluta till Azure Database för PostgreSQL. Du behöver det fullständiga servernamnet och inloggningsuppgifter.

  1. I Azure-portalen söker du efter och väljer den server som du har skapat (till exempel mydemoserver).

  2. I serverns översiktspanelantecknar du servernamnet och administratörsanvändarnamnet. Om du glömmer lösenordet kan du även återställa det på den här panelen.

    Azure Database for PostgreSQL-anslutningssträng

Kör JavaScript-kod i Node.js

Du kan köra Node.js från Bash-gränssnittet, terminalen eller Windows kommandotolk genom att skriva node och sedan köra JavaScript-exempelkoden interaktivt genom att kopiera och klistra in den i kommandotolken. Du kan också spara JavaScript-koden i en textfil och starta node filename.js med namnet som en parameter för att köra den.

Ansluta, skapa tabell och infoga data

Använd följande kod för att ansluta och läsa in data med hjälp av SQL-instruktionerna CREATE TABLE och INSERT. Objektet pg. Klienten används för gränssnittet med PostgreSQL-server. Funktionen pg.Client.connect() används för att etablera anslutningen till servern. Funktionen pg. Client.Query() används för att köra SQL-frågor mot en PostgreSQL-databas.

Ersätt parametrarna host, dbname,user och password med de värden som du angav när du skapade servern och databasen.

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

Läsa data

Använd följande kod för att ansluta och läsa data med en SELECT-SQL-instruktion. Objektet pg. Klienten används för gränssnittet med PostgreSQL-server. Funktionen pg.Client.connect() används för att etablera anslutningen till servern. Funktionen pg. Client.Query() används för att köra SQL-frågor mot en PostgreSQL-databas.

Ersätt parametrarna host, dbname,user och password med de värden som du angav när du skapade servern och databasen.

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

Uppdatera data

Använd följande kod för att ansluta och läsa data med en UPDATE-SQL-instruktion. Objektet pg. Klienten används för gränssnittet med PostgreSQL-server. Funktionen pg.Client.connect() används för att etablera anslutningen till servern. Funktionen pg. Client.Query() används för att köra SQL-frågor mot en PostgreSQL-databas.

Ersätt parametrarna host, dbname,user och password med de värden som du angav när du skapade servern och databasen.

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

Ta bort data

Använd följande kod för att ansluta och läsa data med en DELETE-SQL-instruktion. Objektet pg. Klienten används för gränssnittet med PostgreSQL-server. Funktionen pg.Client.connect() används för att etablera anslutningen till servern. Funktionen pg. Client.Query() används för att köra SQL-frågor mot en PostgreSQL-databas.

Ersätt parametrarna host, dbname,user och password med de värden som du angav när du skapade servern och databasen.

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

Rensa resurser

Om du vill rensa alla resurser som används under den här snabbstarten tar du bort resursgruppen med följande kommando:

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

Nästa steg