Javascript knex中的排水管连接比预期花费更多的时间
我正在对使用knex池的项目进行摩卡测试 我遇到的问题是,当测试结束时,它会一直等到knex池中的水排干,并且需要额外的几秒钟(大约5-10秒)来完成mocha运行 代码示例: knex已初始化:Javascript knex中的排水管连接比预期花费更多的时间,javascript,node.js,mocha.js,knex.js,Javascript,Node.js,Mocha.js,Knex.js,我正在对使用knex池的项目进行摩卡测试 我遇到的问题是,当测试结束时,它会一直等到knex池中的水排干,并且需要额外的几秒钟(大约5-10秒)来完成mocha运行 代码示例: knex已初始化: const Knex = require('knex'); const knex = new Knex({ client: 'pg', pool: { min: 1, max: 10 }, connection: {}, searchPath: 'knex,public', //
const Knex = require('knex');
const knex = new Knex({
client: 'pg',
pool: { min: 1, max: 10 },
connection: {},
searchPath: 'knex,public',
// debug: true,
});
摩卡测试排水管连接:
after((done) => {
knex.destroy().then(done);
})
我想完成的是以下两项:
有什么建议吗?这项功能不久前在摩卡发生了变化 2879:默认情况下,一旦所有测试完成,Mocha将不再强制流程退出。这意味着任何测试代码(或测试中的代码) 通常会阻止节点退出的将在运行时这样做 摩卡。提供--exit标志以恢复到v4.0.0之前的行为 (@ScottFreeCode,@boneskull) 如果上述情况没有帮助,您可以始终在“完成”中调用process.exit(0),以使用成功退出代码强制终止进程
在knex侧,没有强制终止连接的强制选项。此功能在不久前在摩卡发生了更改 2879:默认情况下,一旦所有测试完成,Mocha将不再强制流程退出。这意味着任何测试代码(或测试中的代码) 通常会阻止节点退出的将在运行时这样做 摩卡。提供--exit标志以恢复到v4.0.0之前的行为 (@ScottFreeCode,@boneskull) 如果上述情况没有帮助,您可以始终在“完成”中调用process.exit(0),以使用成功退出代码强制终止进程
在knex侧,没有强制终止连接的强制选项。这将帮助您的连接避免排水
const config = {
client: "pg",
connection: {
host: hostname,
user: username,
password: password,
database: datbase
},
pool: {
min: 0,
max: 10
},
acquireConnectionTimeout: 1000
}
var Knex = require('knex')
this.functioname = () => {
var output = {}
return new Promise(function (resolve) {
var knex = new Knex(config)
knex(tablename)
.select()
.then((result) => {
if (result.length > 0) {
output.error = false
output.result = result
} else {
output.error = true
}
resolve(output)
})
.catch((err) => {
err.error = true
resolve(err)
})
.finally(() => {
knex.destroy()
})
})
}
这将有助于您的连接不被耗尽
const config = {
client: "pg",
connection: {
host: hostname,
user: username,
password: password,
database: datbase
},
pool: {
min: 0,
max: 10
},
acquireConnectionTimeout: 1000
}
var Knex = require('knex')
this.functioname = () => {
var output = {}
return new Promise(function (resolve) {
var knex = new Knex(config)
knex(tablename)
.select()
.then((result) => {
if (result.length > 0) {
output.error = false
output.result = result
} else {
output.error = true
}
resolve(output)
})
.catch((err) => {
err.error = true
resolve(err)
})
.finally(() => {
knex.destroy()
})
})
}