knex.js 数据库调用未完成
knex.js db call does not complete
我正在学习 node.js 并且遇到了 knex.js 和 bookshelf.js 与不同数据库的接口。我正在尝试 运行 一个简单的 knex 程序,但不知何故程序没有退出。下面是程序:
'use strict';
console.log('Getting knex');
var knex = require('./knex')({
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'shankhoneer',
password: 'password',
database: 'knex_test'
}
});
debugger;
console.log('got knex');
knex.schema.createTable('users', function(table) {
console.log('creating tables');
table.increments('id');
table.string('user_name');
}).then (function(msg){
console.log('Completed creation');
console.log(msg);
return {inserted: true};
});
我调试了一下,发现knex使用的是bluebird promises。我的问题是由于未完全退出承诺造成的吗?
谢谢
这是因为与数据库的连接仍然打开。
在最后一个 .then( ... )
之后添加以下代码,它将断开连接(从而退出该过程):
.finally(function() {
knex.destroy();
})
我正在学习 node.js 并且遇到了 knex.js 和 bookshelf.js 与不同数据库的接口。我正在尝试 运行 一个简单的 knex 程序,但不知何故程序没有退出。下面是程序:
'use strict';
console.log('Getting knex');
var knex = require('./knex')({
client: 'mysql',
connection: {
host: '127.0.0.1',
user: 'shankhoneer',
password: 'password',
database: 'knex_test'
}
});
debugger;
console.log('got knex');
knex.schema.createTable('users', function(table) {
console.log('creating tables');
table.increments('id');
table.string('user_name');
}).then (function(msg){
console.log('Completed creation');
console.log(msg);
return {inserted: true};
});
我调试了一下,发现knex使用的是bluebird promises。我的问题是由于未完全退出承诺造成的吗? 谢谢
这是因为与数据库的连接仍然打开。
在最后一个 .then( ... )
之后添加以下代码,它将断开连接(从而退出该过程):
.finally(function() {
knex.destroy();
})