连接处于关闭状态时无法添加新命令(express.js + mysql2 + mysql2/promise + clearDB + heruko)



每当我第二次调用我使用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()

在所有的控制器中。。。因此它将自动处理所有所需的连接释放或其他使连接完美工作所需的事情

相关内容

  • 没有找到相关文章

最新更新