快速入門:使用Node.js連線和查詢 適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器中的數據
適用於:適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器
重要
適用於 PostgreSQL 的 Azure 資料庫 - 單一伺服器位於淘汰路徑上。 強烈建議您升級至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 如需移轉至 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的詳細資訊,請參閱單一伺服器 適用於 PostgreSQL 的 Azure 資料庫 發生什麼事?。
在本快速入門中,您會使用 Node.js 應用程式連線到 適用於 PostgreSQL 的 Azure 資料庫。 它會顯示如何使用 SQL 陳述式來查詢、插入、更新和刪除資料庫中的資料。 本文中的步驟假設您已熟悉使用 Node.js 進行開發,而且不熟悉 適用於 PostgreSQL 的 Azure 資料庫。
必要條件
具有有效訂用帳戶的 Azure 帳戶。 免費建立帳戶。
完成快速入門:在 Azure 入口網站 或快速入門中建立 適用於 PostgreSQL 的 Azure 資料庫 伺服器:使用 Azure CLI 建立 適用於 PostgreSQL 的 Azure 資料庫。
安裝 pg 用戶端
安裝 pg,這是適用於 Node.js 的 PostgreSQL 用戶端。
若要這樣做,請從命令行執行適用於 JavaScript 的節點套件管理員 (npm),以安裝 pg 用戶端。
npm install pg
列出已安裝的套件來確認安裝。
npm list
取得連線資訊
取得連線至 適用於 PostgreSQL 的 Azure 資料庫 所需的連線資訊。 您需要完整的伺服器名稱和登入認證。
在 Azure 入口網站 中,搜尋並選取您已建立的伺服器(例如 mydemoserver)。
從伺服器的 [概觀] 面板中,記下 [伺服器名稱] 和 [管理員 用戶名稱]。 如果您忘記密碼,您也可以從此面板重設密碼。
在 Node.js 中執行 JavaScript 程式代碼
您可以輸入 node
,從Bash殼層、終端機或 Windows 命令提示字元啟動Node.js,然後複製並貼到提示字元,以互動方式執行範例 JavaScript 程式代碼。 或者,您可以將 JavaScript 程式代碼儲存到文字檔,並以檔名作為參數啟動 node filename.js
以執行它。
連線、建立資料表及插入資料
使用下列程序代碼,使用 CREATE TABLE 和 INSERT INTO SQL 語句連接和載入數據。 pg.用戶端對像是用來與 PostgreSQL 伺服器介面。 pg.Client.connect() 函式可用來建立與伺服器的連線。 pg.Client.query() 函式可用來對 PostgreSQL 資料庫執行 SQL 查詢。
將主機、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();
});
}
讀取資料
使用下列程序代碼,使用 SELECT SQL 語句連接和讀取數據。 pg.用戶端對像是用來與 PostgreSQL 伺服器介面。 pg.Client.connect() 函式可用來建立與伺服器的連線。 pg.Client.query() 函式可用來對 PostgreSQL 資料庫執行 SQL 查詢。
將主機、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() 函式可用來對 PostgreSQL 資料庫執行 SQL 查詢。
將主機、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() 函式可用來對 PostgreSQL 資料庫執行 SQL 查詢。
將主機、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