2016-10-31 10 views
0

Я пытаюсь интегрировать Knex (который я использовал в предыдущем приложении, которое не использовало kraken.js), но теперь мне нужно его для ORM (bookshelf.js). Я наткнулся на this post во время исследования, но я все еще немного расплывчатый. Это для DB mysql.Как настроить Knex для книжной полки с помощью Kraken.js

Где я могу создать соединение, чтобы передать его на объект книжной полки для своих моделей?

ответ

1

Просто установите его как глобальный объект в вашем обработчике onconfig(). Что-то вроде этого:

config.json:

//... 
"databaseConfig": { 
    "host": // db host 
    "database": // db name 
    "user": //db user 
    "password": //db pass 
}, 

Lib/bs.js

var bookshelf = require('bookshelf')(global.db); 
module.exports = function Bookshelf() { 
    return bookshelf; 
}; 

index.js:

var options = { 
    onconfig: function(config, next) { 
    global.db = require('knex')({ 
     client: 'mysql', 
     connection: config.get('databaseConfig') 
    }); 

    next(null, config); 
    } 
}; 

Когда вам нужен объект книжной полки, чтобы определить свои модели, вы можете включить его, и он готов к работе:

модели/accounts.js

var bs = require('../lib/bs')(); 

    var Account = bs.Model.extend({ 
     idAttribute: 'id', 
     tableName: 'accounts' 
    }); 

    module.exports = function AccountModel() { 
     return Account; 
    } 

Там же и другие способы сделать это, но это чистый и должен быть достаточным для того, что вам нужно.

 Смежные вопросы

  • Нет связанных вопросов^_^