【发布时间】:2023-03-14 01:30:01
【问题描述】:
我正在使用以下代码进行knex连接,但经常出现错误
Knex:获取连接超时。游泳池可能已经满了。你错过了一个 .transacting(trx) 电话吗?
谁能建议这个问题的解决方案?
var knexConn = reqKnex({
client: pClient,
native: false,
connection: pConn,
searchPath: pSearchPath,
pool: {
max: 7,
min: 3,
acquireTimeout: 60 * 1000
}
});
function getTransactionScope(pKnex, callback) {
try {
pKnex.transaction(function(trx) {
return callback(trx);
});
} catch (error) {
console.log(error);
}
}
function ExecuteSQLQuery(pTranDB, pTrx, pQuery, pCallback) {
try {
var query = pTranDB.raw(pQuery);
if (pTrx) {
query = query.transacting(pTrx);
}
query.then(function(res, error) {
try {
if (error) {
console.log(error);
} else {
return pCallback(res, error);
}
} catch (error) {
console.log(error);
}
}).catch(function(error) {
return pCallback(null, error);
});
} catch (error) {
console.log(error);
}
}
function Commit(pTrx, pIsCommit) {
try {
if (pIsCommit) {
pTrx.commit();
} else {
pTrx.rollback();
}
} catch (error) {
console.log(error);
}
}
【问题讨论】:
-
(是否你有
.transacting(trx)(或关闭)电话(动态)?) -
你有想过这个问题吗?
-
谁能解决这个错误?
-
有人找到这个错误的解决方案吗?
-
不要使用
propagationError: falsegithub.com/knex/knex/issues/3455