設定
最後更新
本頁列出 init() 接受的所有設定來源、欄位與預設值。
設定來源優先序
init(config?) 依下表為讀寫兩側各選一個來源(src/MySQLPool.ts:52-72),選定後整組使用,不會跨來源合併欄位:
| 連線池 | 來源(由高到低) |
|---|---|
| 讀取 | config.config → config.read → DB_READ_* 環境變數 |
| 寫入 | config.config → config.write → config.read → DB_WRITE_* 環境變數 |
import MySQLPool from "@pardnchiu/mysql-pool";
// 讀寫分離
await MySQLPool.init({
read: { host: "replica.local", user: "reader", password: "secret", database: "app", connectionLimit: 16 },
write: { host: "primary.local", user: "writer", password: "secret", database: "app", connectionLimit: 4 },
});
MySQLConfig
interface MySQLConfig {
host?: string;
port?: number;
user?: string;
password?: string;
database?: string;
charset?: string;
connectionLimit?: number;
}
所有欄位經 correctConfig() 補預設值並 trim()(src/MySQLPool.ts:40-50):
| 欄位 | 預設值 | 說明 |
|---|---|---|
host |
localhost |
|
port |
3306 |
無法解析為整數時同樣回到 3306 |
user |
root |
|
password |
"" |
前後空白會被去除 |
database |
"" |
空字串時不建立該側連線池 |
charset |
utf8mb4 |
|
connectionLimit |
8 |
連線池同時開啟的連線上限 |
MySQLConfig 未從套件匯出。
環境變數
未傳入對應設定物件時讀取下列變數:
| 讀取端 | 寫入端 | 預設值 |
|---|---|---|
DB_READ_HOST |
DB_WRITE_HOST |
localhost |
DB_READ_PORT |
DB_WRITE_PORT |
3306 |
DB_READ_USER |
DB_WRITE_USER |
root |
DB_READ_PASSWORD |
DB_WRITE_PASSWORD |
"" |
DB_READ_DATABASE |
DB_WRITE_DATABASE |
""(不建立連線池) |
DB_READ_CHARSET |
DB_WRITE_CHARSET |
utf8mb4 |
DB_READ_CONNECTION |
DB_WRITE_CONNECTION |
4 |
注意連線數預設值的差異:走環境變數時為 4,走設定物件且未指定 connectionLimit 時為 8。