每当我第二次调用我使用mysql2+expressjs+clearDB(在HERUKO上(+HERUKO部署服务器创建的api时,我都会面临这个错误
这是我的代码。。。。
const [rows,fields]= await db.execute(MYQUERY,[myarguments])
我用mysql2提供的asin/await功能调用mysql服务器
import mysql from 'mysql2/promise'
之后我创建连接
let db = await mysql.createconnection({
host: 'localhost',
user: "root",
password: "asdzxcasdzxc123123",
database: "doctorapp"
})导出{db}
对此错误有任何解决方案。。。???
i在mysql2/promise中遇到此错误
此错误的原因
实际问题是mysql2/promise。
当您使用mysql2-npm包创建与mysql数据库的连接时,这会导致错误。。。
此错误的解决方案
我通过创建与mysql.createtPool(yourCredentials(的连接解决了这个错误
创建这样的数据库配置文件
import mysql from 'mysql2'
let db = mysql.createPool({
host: 'Enter your host here',
user: "enter user name here",
password: "enter you password",
database: "enter the database name",
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
})
export { db }
在控制器或路由器中使用db应该是这样
const promise = db.promise()
const select_user_query=`
select *
from users
`
const [rows,fields]= await promise.execute(select_user_query)
return res.status(200).json({users:rows})
需要注意的一件事===>
您必须创建
const promise= db.promise()
在所有的控制器中。。。因此它将自动处理所有所需的连接释放或其他使连接完美工作所需的事情