Краткое руководство. Использование Node.js для подключения и запроса данных в База данных Azure для PostgreSQL — отдельный сервер
Область применения: отдельный сервер Базы данных Azure для PostgreSQL
Внимание
База данных Azure для PostgreSQL — одиночный сервер находится на пути выхода на пенсию. Настоятельно рекомендуется выполнить обновление до База данных Azure для PostgreSQL — гибкий сервер. Дополнительные сведения о миграции на База данных Azure для PostgreSQL — гибкий сервер см. в статье "Что происходит с одним сервером База данных Azure для PostgreSQL?".
Из этого краткого руководства вы узнаете, как подключиться к Базе данных Azure для PostgreSQL с помощью приложения Node.js. Здесь также показано, как использовать инструкции SQL для запроса, вставки, обновления и удаления данных в базе данных. В этой статье предполагается, что у вас уже есть опыт разработки на Node.js и вы только начали работу с Базой данных Azure для PostgreSQL.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно .
Завершение краткого руководства. Создание сервера База данных Azure для PostgreSQL в портал Azure или кратком руководстве. Создание База данных Azure для PostgreSQL с помощью Azure CLI.
Установка клиента pg
Установите pg, клиент PostgreSQL для Node.js.
Для этого запустите диспетчер пакетов узла (npm) для JavaScript из командной строки.
npm install pg
Проверьте установку, получив список установленных пакетов.
npm list
Получение сведений о подключении
Получите сведения, необходимые для подключения к базе данных Azure.для PostgreSQL. Вам потребуется полное имя сервера и учетные данные для входа.
На портале Azure найдите и выберите созданный вами сервер (например, mydemoserver).
Запишите имя сервера и имя для входа администратора с панели сервера Обзор. Если вы забыли свой пароль, можно также сбросить пароль с помощью этой панели.
Выполнение кода JavaScript в Node.js
Node.js можно запустить из оболочки Bash, терминала или командной строки Windows при помощи команды node
. Затем интерактивно запустите пример кода JavaScript, скопировав и вставив его в командную строку. Либо же можно сохранить код JavaScript в текстовый файл и запустить node filename.js
с именем файла в качестве параметра для его выполнения.
Подключение, создание таблицы и вставка данных
Используйте приведенный ниже код для подключения и загрузки данных с помощью инструкций SQL CREATE TABLE и INSERT INTO. Объект pg.Client используется для обмена данными с сервером PostgreSQL. Функция pg.Client.connect() используется для подключения к серверу. Функция pg.Client.query() используется для выполнения SQL-запроса к базе данных PostgreSQL.
Замените значения параметров host, dbname, user и password значениями, указанными при создании сервера и базы данных.
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 SELECT для подключения и чтения данных. Объект pg.Client используется для обмена данными с сервером PostgreSQL. Функция pg.Client.connect() используется для подключения к серверу. Функция pg.Client.query() используется для выполнения SQL-запроса к базе данных PostgreSQL.
Замените значения параметров host, dbname, user и password значениями, указанными при создании сервера и базы данных.
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);
});
}
Обновление данных
Используйте указанный ниже код с инструкцией SQL UPDATE для подключения и чтения данных. Объект pg.Client используется для обмена данными с сервером PostgreSQL. Функция pg.Client.connect() используется для подключения к серверу. Функция pg.Client.query() используется для выполнения SQL-запроса к базе данных PostgreSQL.
Замените значения параметров host, dbname, user и password значениями, указанными при создании сервера и базы данных.
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;
});
}
Удаление данных
Используйте указанный ниже код с инструкцией SQL DELETE для подключения и чтения данных. Объект pg.Client используется для обмена данными с сервером PostgreSQL. Функция pg.Client.connect() используется для подключения к серверу. Функция pg.Client.query() используется для выполнения SQL-запроса к базе данных PostgreSQL.
Замените значения параметров host, dbname, user и password значениями, указанными при создании сервера и базы данных.
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