1
我試圖使用pg
,一個Postgres客戶端的節點。在這些例子中,它使用下面的代碼:在節點全局範圍內使用await加載數據庫客戶端可能嗎?
const { Client } = require('pg')
const client = new Client()
await client.connect()
const res = await client.query('SELECT $1::text as message', ['Hello world!'])
console.log(res.rows[0].message) // Hello world!
await client.end()
我瞭解異步/ AWAIT函數的語法要求你寫伺機聲明爲異步函數內的語句。但是,通常在連接數據庫客戶端時,將其連接到函數之外並在全局範圍內。是否有任何使用異步函數而不必將客戶端封裝在函數中的最佳實踐?
看來,使用這種語法,我們不得不訴諸類似以下內容:
const { Client } = require('pg');
const client = new Client();
async connectClient (client) {
await client.connect();
return client;
}
async disconnectClient(client) {
await client.end()
}
也許我錯過在我的理解的東西在這裏。
驗證解決方案是否適用於您。 @steviejay – gokcand
@GökcanD解決方案肯定有效,但我想看看是否還有其他替代方案;特別是不必訴諸於OOP設計元素 – steviejay