我正在使用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
}
答案 0 :(得分:0)
是的,对,所以我完全忘记了knex创建的连接池阻止进程停止。程序按预期工作,我没有看到一切。
我不会删除它,因为它可能会帮助某人