pardnio/node-mysql-pool
最後更新
CHAIN YOUR MYSQL QUERIES ACROSS READ AND WRITE POOLS!
Node.js MySQL 連線池,具備讀寫分離、鏈式查詢建構器與慢查詢記錄
目錄
功能特點
npm install @pardnchiu/mysql-pool· 完整文件
- 讀寫分離雙連線池 — 讀取與寫入各自維護獨立連線池,可由設定物件或
DB_READ_*/DB_WRITE_*環境變數初始化,未設定寫入端時自動沿用讀取端設定。 - 鏈式查詢建構器 — 從
table()起串接 select、where、join、orderBy、limit 直到get(),所有值皆以佔位符綁定而非字串拼接。 - 單次查詢取得分頁總數 —
total()以COUNT(*) OVER()視窗函式在同一筆查詢中附帶總筆數,分頁不需再發第二次 COUNT。 - UPSERT 與 MySQL 函式白名單 — 寫入值命中
NOW()、UUID()等白名單函式時原樣嵌入 SQL,其餘一律綁定參數,兼顧便利與安全。 - 慢查詢記錄與優雅關閉 — 超過 20ms 的查詢自動輸出耗時與 SQL,並在
SIGINT/SIGTERM時自動釋放連線池。
架構
graph TB
App[應用程式] --> Init["init()"]
Init --> Cfg[設定解析<br/>設定物件 / 環境變數]
Cfg --> RP[(讀取連線池)]
Cfg --> WP[(寫入連線池)]
App --> QB[鏈式查詢建構器]
App --> Raw["read() / write()"]
QB --> Exec["query() 執行器<br/>慢查詢記錄"]
Raw --> Exec
Exec --> RP
Exec --> WP
授權
本專案採用 MIT LICENSE。
Author
Just open an issue to share an idea.
©️ 2025 邱敬幃 Pardn Chiu