这两天在研究express里连接mysql,在创建数据库连接的时候,发现下面这个奇怪的问题。
这面这部分代码是这样的:
const mysql = require('mysql')
module.exports = {
// database config
config: {
connectionLimit: 10,
host: '',
database: '',
user: '',
password: ''
},
sqlConnect: (sql, sqlArr, callBack) => {
const pool = mysql.createPool(this.config)
pool.getConnection((err, conn) => {
if (err) return console.log('连接失败')
conn.query(sql, sqlArr, callBack)
conn.release()
})
}
}
执行的时候却报错了:
TypeError: Cannot read property 'acquireTimeout' of undefined
但是如果把config直接写到mysql.createPool里,居然就没有问题。
const mysql = require('mysql')
module.exports = {
sqlConnect: (sql, sqlArr, callBack) => {
const pool = mysql.createPool({
connectionLimit: 10,
host: '',
database: '',
user: '',
password: ''
})
pool.getConnection((err, conn) => {
if (err) return console.log('连接失败')
conn.query(sql, sqlArr, callBack)
conn.release()
})
}
}
真是奇怪,难道我使用config来创建的话,会自动要求有一个acquireTimeout的参数?
最新回复