首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >knex的排水连接所需时间比预期的要长。

knex的排水连接所需时间比预期的要长。
EN

Stack Overflow用户
提问于 2017-10-04 18:50:12
回答 2查看 343关注 0票数 1

我正在进行摩卡测试的项目,使用knex池。

我的问题是,当测试结束时,它一直在等待直到knex池被排出,并且需要额外的几秒钟(大约5-10秒)才能完成摩卡的运行。

代码示例:

knex初始化:

代码语言:javascript
复制
const Knex = require('knex');
const knex = new Knex({
  client: 'pg',
  pool: { min: 1, max: 10 },
  connection: {},
  searchPath: 'knex,public',
  // debug: true,
});

摩卡测试排水沟连接:

代码语言:javascript
复制
  after((done) => {
    knex.destroy().then(done);
  })

我想要做到的是,这两者都是:

  1. 排水速度更快
  2. 不知怎的,摩卡完成了测试,而不用等knex排空。

有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2017-10-05 08:10:30

这个功能在摩卡的时候发生了变化。

2879:默认情况下,一旦所有测试完成,Mocha将不再强制进程退出。这意味着任何测试代码(或正在测试的代码)。 在Mocha中运行时,通常会防止节点退出。提供--退出标志以恢复到pre-v4.0.0行为(@ScottFreeCode,@boneskull)

https://github.com/mochajs/mocha/blob/master/CHANGELOG.md

如果上述情况没有帮助,您可以始终调用process.exit(0) in done,以强制终止进程并成功退出代码。

AFAIK在knex一侧没有武力选择杀死连接。

票数 0
EN

Stack Overflow用户

发布于 2019-05-14 09:20:09

这将有助于您的连接从排水。

代码语言:javascript
复制
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()
        })
    })
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46572132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档