使用带有 async\await 的 mysql 池 |节点JS
Posted
技术标签:
【中文标题】使用带有 async\\await 的 mysql 池 |节点JS【英文标题】:Using mysql pool with async\await | nodeJS使用带有 async\await 的 mysql 池 |节点JS 【发布时间】:2022-01-22 23:06:01 【问题描述】:我正在使用 mysql2 和 nodejs,目前使用如下简单连接:
mysql.ts
const Connect = () =>
if (!connection)
return mysql.createConnection(params);
return connection;
;
someQuery.ts
const connection = Connect();
const asyncQuery = util.promisify(connection.query).bind(connection);
现在,在服务器运行应用程序的一段时间后,由于连接丢失而崩溃,我在网上阅读了一些内容,了解到为了解决它,作为更好的做法,我应该使用连接池。 问题是我还没有真正找到像上面那样使用 async-await 的东西。
有人对此有解决方案吗? await asyncQuery('在这里查询');
【问题讨论】:
【参考方案1】:去年我有一个项目,我使用了 mysql2/promise 库。
connector.js
const mysql = require('mysql2/promise');
const con = mysql.createPool(
host: "localhost",
user: "root",
password: "pw",
database: "database",
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
);
module.exports = con;
queries.js
const db = require('../helpers/mysql/connector');
getAnything: async () =>
try
let anything = await db.execute("SELECT * FROM anything");
return colos[0];
catch (e)
console.log(e);
return null;
,
【讨论】:
嗨,你能分享一下你是如何查询的吗?这只是连接创建。以上是关于使用带有 async\await 的 mysql 池 |节点JS的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 async/await 的 ThreadStatic 变量
使用带有 async/await 的 mongoose 承诺
使用 jasmin 使用带有 async/await 的 $httpBackend 测试角度服务