Sto imparando node.js e ho incontrato knex.js e bookshelf.js per interfacciare database diversi. Sto cercando di eseguire un semplice programma knex ma in qualche modo il programma non si chiude. Di seguito è riportato il programma:knex.js chiamata db non completa
'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};
});
ho cercato di eseguire il debug e ha scoperto che knex utilizza promesse Bluebird. Il mio problema è dovuto all'uscita incompleta da una promessa? Grazie
Grazie, ha funzionato! Puoi dirmi se è finalmente il modo di porre fine alla promessa? Grazie ancora. –
Alla fine non è necessario terminare sempre una promessa. Segue le regole del convenzionale 'try {} catch() {} finally' di javascript, nel senso che il codice all'interno di' finally' sarà sempre eseguito alla fine della catena di promesse. Dovresti, comunque, avere sempre un 'catch 'oppure potresti non ricevere errori lanciati. Bluebird è abbastanza saggio da ricrearli se non trova alcun 'catch 'nella tua catena di promesse. – victorkohl
Ulteriori informazioni sulla [pagina github Bluebird] (https://github.com/petkaantonov/bluebird#error-handling). – victorkohl