2016-10-31 5 views
0

knex(kraken.jsを使用しなかった以前のアプリケーションで使用していたKnex)を統合しようとしていますが、今は自分のORM(bookshelf.js)に必要です。私は研究中にthis postに出くわしましたが、まだ少しばかげています。これはmysql DB用です。Kraken.jsでBookshelfのKnexを構成する方法

モデルのブックシェルフオブジェクトに渡すために接続を作成する必要がありますか。

答えて

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

あなたは、あなたのモデルを定義するために、あなたの本棚のオブジェクトが必要な場合、あなたはそれを含めることができますし、それは行く準備ができます:

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

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

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

accounts.js

モデル/そこにそれを行うために他の方法がありますが、これはありますきれいで、必要なものに十分なはずです。

関連する問題