Я изучаю node.js и наткнулся на knex.js и bookshelf.js для взаимодействия с различными базами данных. Я пытаюсь запустить простую программу knex, но так или иначе программа не выходит. Ниже приведена программа:knex.js db вызов не завершен
'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};
});
Я попытался отладить и обнаружил, что кнукс использует обещания синей птицы. Является ли моя проблема из-за неполного выхода из обещания? Thanks
Спасибо, это сработало! Не могли бы вы рассказать мне, наконец, как закончить обещание? Еще раз спасибо. –
Вам не обязательно всегда заканчивать обещание наконец. Он следует правилам обычного 'try {} catch() {} finally' javascript в том смысле, что код внутри' finally' всегда будет выполняться в конце цепочки обещаний. Однако вы должны всегда иметь «catch», иначе вы не сможете поймать заброшенные ошибки. Bluebird достаточно мудр, чтобы отбросить их, если он не найдет «catch» в вашей цепочке обещаний. – victorkohl
Подробнее об этом на странице [Bluebird github] (https://github.com/petkaantonov/bluebird#error-handling). – victorkohl