可將 SELECT
Statement 直接傳入 Node-postgres,並且支援 Parameter 方式避免湊字串而造成 SQL Injection。
Version
Node 14.18.1
Node-postgres 8.7.1
Add Library
$ yarn add pg
pg
:安裝 Node-postgres 連接 PostgreSQL。
SELECT
import PG from 'pg'
let { Pool } = PG
let pg = new Pool ({
host: 'localhost',
port: 5432,
user: 'admin',
password: '12345',
database: 'KnexLab'
})
let { rows } = await pg.query (`
SELECT *
FROM articles
WHERE id = $1
`, [2])
console.log (rows)
第 5 行
let pg = new Pool ({
host: 'localhost',
port: 5432,
user: 'admin',
password: '12345',
database: 'KnexLab'
})
使用 Node-postgres 連接 PostgreSQL:
host
:設定 hostport
:設定 portuser
:設定 idpassword
:設定 passworddatabase
:設定連接 database
13 行
let { rows } = await pg.query (`
SELECT *
FROM articles
WHERE id = $1
`, [2])
- 將
SELECT
傳入pg.query
SELECT
的 parameter 從$1
開始,非$0
- Value 須以 Array 傳入
pg.query
第二個 argument pg.query
回傳為 Promise,使用 top level await 處理- 使用 Object Destructure 抽出
rows
才是實際回傳 Array
Conclusion
pg.query
支援 Promise,因此可使用 Promise Chain 或 Async Await 處理皆可