التشغيل السريع: استخدام Node.js للاتصال والاستعلام عن البيانات في قاعدة بيانات Azure لـ PostgreSQL - خادم مفرد

ينطبق على: قاعدة بيانات Azure لـ PostgreSQL - خادم واحد

هام

قاعدة بيانات Azure ل PostgreSQL - خادم واحد على مسار التقاعد. نوصي بشدة بالترقية إلى Azure Database for PostgreSQL - Flexible Server. لمزيد من المعلومات حول الترحيل إلى قاعدة بيانات Azure ل PostgreSQL - خادم مرن، راجع ما يحدث لقاعدة بيانات Azure لخادم PostgreSQL الفردي؟.

في هذه البداية السريعة، يمكنك الاتصال بقاعدة بيانات Azure لـ PostgreSQL باستخدام تطبيق Node.js. توضح طريقة استخدام عبارات SQL الاستعلام عن البيانات وإدراجها وتحديثها وحذفها في قاعدة البيانات. تفترض الخطوات الواردة في هذه المقالة أنك معتاد على تطوير باستخدام Node.js، وأنها جديدة للعمل مع قاعدة بيانات Azure ل PostgreSQL.

المتطلبات الأساسية

تثبيت عميل PG

تثبيت pg، وهو عميل PostgreSQL Node.js.

للقيام بذلك، قم بتشغيل إدارة حزمة العقدة (npm) لـ JavaScript من سطر الأوامر لتثبيت عميل PG.

npm install pg

تحقق من التثبيت عن طريق سرد الحزم المثبتة.

npm list

الحصول على معلومات الاتصال

الحصول على معلومات الاتصال المطلوبة للاتصال بقاعدة بيانات Azure لـ PostgreSQL. أنت بحاجة إلى اسم الخادم المؤهل بالكامل وبيانات اعتماد تسجيل الدخول.

  1. في مدخل Microsoft Azure، ابحث عن الخادم الذي أنشأته (مثل mydemoserver) وحدده.

  2. من لوحة نظرة عامة على الخادم، دون اسم الخادم واسم المستخدم مسؤول. إذا نسيت كلمة المرور، يمكنك أيضًا إعادة تعيين كلمة المرور من هذه اللوحة.

    قاعدة بيانات Azure لسلسلة اتصال PostgreSQL

تشغيل رمز جافا سكريبت في Node.js

يمكنك تشغيل Node.js من Bash shell أو Terminal أو موجه أوامر Windows بكتابة node، ثم قم بتشغيل مثال تعليمة JavaScript البرمجية بشكل تفاعلي عن طريق نسخه ولصقه في المطالبة. بدلا من ذلك، يمكنك حفظ رمز JavaScript في ملف نصي وتشغيله node filename.js باسم الملف كمعلمة لتشغيله.

الاتصال وإنشاء الجدول وإدخال البيانات

قم باستخدام التعليمات البرمجية التالية للاتصال وتحميل البيانات باستخدام إنشاء جدول وإدراج في عبارات SQL. ال pg. يتم استخدام كائن العميل للواجهة مع خادم PostgreSQL. ال pg. يتم استخدام الدالة Client.connect() لإنشاء الاتصال بالخادم. ال pg. تستخدم الدالة Client.query() لتنفيذ استعلام SQL مقابل قاعدة بيانات PostgreSQL.

استبدال معلمات المضيف وdbname والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الملقم وقاعدة البيانات.

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

اقرأ البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام حدد عبارة SQL. ال pg. يتم استخدام كائن العميل للواجهة مع خادم PostgreSQL. ال pg. يتم استخدام الدالة Client.connect() لإنشاء الاتصال بالخادم. ال pg. تستخدم الدالة Client.query() لتنفيذ استعلام SQL مقابل قاعدة بيانات PostgreSQL.

استبدال معلمات المضيف وdbname والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الملقم وقاعدة البيانات.

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

تحديث البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة UPDATE SQL. ال pg. يتم استخدام كائن العميل للواجهة مع خادم PostgreSQL. ال pg. يتم استخدام الدالة Client.connect() لإنشاء الاتصال بالخادم. ال pg. تستخدم الدالة Client.query() لتنفيذ استعلام SQL مقابل قاعدة بيانات PostgreSQL.

استبدال معلمات المضيف وdbname والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الملقم وقاعدة البيانات.

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

حذف البيانات

استخدم التعليمات البرمجية التالية للاتصال وقراءة البيانات باستخدام عبارة DELETE SQL. ال pg. يتم استخدام كائن العميل للواجهة مع خادم PostgreSQL. ال pg. يتم استخدام الدالة Client.connect() لإنشاء الاتصال بالخادم. ال pg. تستخدم الدالة Client.query() لتنفيذ استعلام SQL مقابل قاعدة بيانات PostgreSQL.

استبدال معلمات المضيف وdbname والمستخدم وكلمة المرور بالقيم التي قمت بتحديدها عند إنشاء الملقم وقاعدة البيانات.

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

تنظيف الموارد

لتنظيف جميع الموارد المستخدمة في أثناء هذا التشغيل السريع حذف مجموعة الموارد باستخدام الأمر التالي:

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

الخطوات التالية