Mulai cepat: Menggunakan Node.js untuk menyambungkan dan mengkueri data di Azure Database for PostgreSQL - Server Tunggal

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Tunggal

Penting

Azure Database for PostgreSQL - Server Tunggal berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke Azure Database for PostgreSQL - Server Fleksibel. Untuk informasi selengkapnya tentang migrasi ke Azure Database for PostgreSQL - Server Fleksibel, lihat Apa yang terjadi pada Server Tunggal Azure Database for PostgreSQL?.

Dalam mulai cepat ini, Anda menyambungkan ke Azure Database for PostgreSQL menggunakan aplikasi Node.js. Ini menunjukkan cara menggunakan pernyataan SQL untuk mengkueri, menyisipkan, memperbarui, dan menghapus data dalam database. Langkah-langkah dalam artikel ini mengasumsikan bahwa Anda terbiasa mengembangkan menggunakan Node.js, dan baru bekerja dengan Azure Database for PostgreSQL.

Prasyarat

Instal klien pg

Instal pg, yang merupakan klien PostgreSQL untuk Node.js.

Untuk melakukannya, jalankan node package manager (npm) untuk JavaScript dari baris perintah Anda untuk menginstal klien pg.

npm install pg

Verifikasi instalasi dengan mencantumkan paket yang terinstal.

npm list

Mendapatkan informasi koneksi

Dapatkan informasi terkait koneksi yang diperlukan untuk menyambungkan ke Azure Database for PostgreSQL. Anda memerlukan nama server dan kredensial untuk masuk yang sepenuhnya memenuhi syarat.

  1. Di portal Azure, cari dan pilih server yang telah Anda buat (seperti mydemoserver).

  2. Dari panel Gambaran Umum server, buat catatan Nama server dan Nama pengguna admin. Jika lupa kata sandi, Anda juga dapat mengatur ulang kata sandi dari panel ini.

    Azure Database untuk string koneksi PostgreSQL

Menjalankan kode JavaScript di Node.js

Anda dapat meluncurkan Node.js dari shell Bash, Terminal, atau Prompt Perintah Windows dengan mengetik node, lalu menjalankan contoh kode JavaScript secara interaktif dengan menyalin dan menempelkannya ke prompt. Atau, Anda dapat menyimpan kode JavaScript ke dalam file teks dan meluncurkan node filename.js dengan nama file sebagai parameter untuk menjalankannya.

Menyambungkan, membuat tabel, dan menyisipkan data

Gunakan kode berikut untuk menyambungkan dan memuat data menggunakan pernyataan SQL MEMBUAT TABEL dan MASUKKAN KE. Objek pg.Client digunakan untuk berinteraksi dengan server PostgreSQL. Fungsi pg.Client.connect() digunakan untuk membuat koneksi ke server. Fungsi pg.Client.query() digunakan untuk menjalankan kueri SQL terhadap database PostgreSQL.

Ganti parameter host, dbname, user, dan password dengan nilai yang Anda tentukan saat membuat server dan 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();
        });
}

Membaca data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL SELECT. Objek pg.Client digunakan untuk berinteraksi dengan server PostgreSQL. Fungsi pg.Client.connect() digunakan untuk membuat koneksi ke server. Fungsi pg.Client.query() digunakan untuk menjalankan kueri SQL terhadap database PostgreSQL.

Ganti parameter host, dbname, user, dan password dengan nilai yang Anda tentukan saat membuat server dan 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);
        });
}

Memperbarui data

Gunakan kode berikut untuk menyambungkan dan membaca data menggunakan pernyataan SQL DELETE. Objek pg.Client digunakan untuk berinteraksi dengan server PostgreSQL. Fungsi pg.Client.connect() digunakan untuk membuat koneksi ke server. Fungsi pg.Client.query() digunakan untuk menjalankan kueri SQL terhadap database PostgreSQL.

Ganti parameter host, dbname, user, dan password dengan nilai yang Anda tentukan saat membuat server dan 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;
        });
}

Menghapus data

Gunakan kode berikut dengan tujuan menyambungkan dan membaca data menggunakan pernyataan SQL HAPUS. Objek pg.Client digunakan untuk berinteraksi dengan server PostgreSQL. Fungsi pg.Client.connect() digunakan untuk membuat koneksi ke server. Fungsi pg.Client.query() digunakan untuk menjalankan kueri SQL terhadap database PostgreSQL.

Ganti parameter host, dbname, user, dan password dengan nilai yang Anda tentukan saat membuat server dan 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;
        });
}

Membersihkan sumber daya

Untuk membersihkan semua sumber daya yang digunakan selama mulai cepat ini, hapus grup sumber daya menggunakan perintah berikut:

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

Langkah berikutnya