0

每当我第二次调用我使用 mysql2+expressjs+clearDB(on HERUKO)+heruko 部署服务器创建的 api 时,我都会遇到这个错误

这是我的代码....

const [rows,fields]= await db.execute(MYQUERY,[myarguments])

我用 mysql2 提供的 asyn/await 功能调用 mysql 服务器

import mysql from 'mysql2/promise'

之后我创建了连接

 let db = await mysql.createconnection({
 host: 'localhost',
 user: "root",
 password: "asdzxcasdzxc123123",
 database: "doctorapp"

}) 导出 { 数据库 }

此错误的任何解决方案...???

4

1 回答 1

0

我在mysql2/promise中遇到了这个错误

此错误的原因

实际问题出在mysql2/promise上。

当您使用mysql2 npm 包创建与mysql 数据库的连接时, 这会导致错误...

此错误的解决方法

我通过创建与 mysql.creatPool(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()

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

于 2022-02-25T09:56:55.000 回答