Knex没有结束连接Postgres

时间:2018-01-31 12:55:35

标签: node.js postgresql knex.js

我正在使用Postgres数据库测试knex.js行为。

文件

数据库configuration.json

{
  "client": "pg",
  "connection": {
    "host" : "localhost",
    "port" : "5432",
    "user" : "postgres",
    "password" : "",
    "database" : "test-database",
    "charset" : "utf8"
  },
  "pool": {
    "min" : 0,
    "max": 7
  }
}

database.connector.js

module.exports = require('knex')(require('../configuration/database-configuration.json'));

所以当我想测试连接时:

database = require('../database.connector')
database.raw('SELECT 1;').then(function (data) {
    logger.info(data);
  }).catch(function (error) {
    logger.error(error);
  });
logger.info('finished');

建立连接并完成查询。但是,进程(节点进程)并没有结束 - 它因某些原因而挂起。它实际上看起来尚未完成查询 - 永远不会调用logger.info('finished');

我的错误在哪里?

修改

我得到的结果是

{

    "command":"SELECT",
    "rowCount":1,
    "oid":null,
    "rows":[
        {
            "?column?":1
        }
    ],
    "fields":[
        {
            "name":"?column?",
            "tableID":0,
            "columnID":0,
            "dataTypeID":23,
            "dataTypeSize":4,
            "dataTypeModifier":-1,
            "format":"text"
        }
    ],
    "_parsers":[
        null
    ],
    "rowAsArray":false
}

1 个答案:

答案 0 :(得分:0)

是的,对,所以我完全忘记了knex创建的连接池阻止进程停止。程序按预期工作,我没有看到一切。

我不会删除它,因为它可能会帮助某人