简体   繁体   中英

knex.js db call does not complete

I am learning node.js and came across knex.js and bookshelf.js to interface with different databases. I am trying to run a simple knex program but somehow the program doesnt quit. Below is the program:

'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};
});

I tried to debug and found that knex uses bluebird promises. Is my problem due to incomplete exit from a promise? Thanks

This is because the connection to the database is still open. Add the following code after your last .then( ... ) and it will disconnect (thus exiting the process):

.finally(function() {
  knex.destroy();
})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM