编写mysql的config配置
1 2 3 4 5 6 7 8 9
| { connectionLimit: 2, host: 'localhost', user: 'root', password: 'root', database: 'db', debug: false, multipleStatements: true }
|
使用连接池创建一个mysql连接的单例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| const mysql = require('mysql'); let conn = undefined;
class Connection {
constructor(config) { this.config = config; }
getPools() { let pool = mysql.createPool({ connectionLimit: this.config.connectionLimit, host: this.config.host, user: this.config.user, password: this.config.password, database: this.config.database, debug: this.config.debug, multipleStatements: this.config.multipleStatements }); return pool; } }
module.exports = function(config) { if (!conn) { conn = new Connection(config).getPools(); } return conn; };
|
note:连接池不能使用事务,所以如果需要使用事务,需要通过连接池取得一个连接,通过这个连接使用事务,事务开始到结束必须使用同一个连接。
使用连接池获取连接
1 2 3 4 5 6 7 8 9
| return new Promise((resolve, reject)=>{ pool.getConnection((err, conn)=>{ if (err) { return reject(err); } resolve(conn); }); });
|