簡體   English   中英

如何使用Kraken.js為書架配置Knex

[英]How to configure Knex for Bookshelf with Kraken.js

我正在嘗試集成Knex(我在以前未使用kraken.js的應用程序中使用了Knex),但現在我的ORM(bookshelf.js)需要它。 我在研究時碰到了這篇文章 ,但是我還是有點模糊。 這是針對mysql DB的。

我應該在哪里創建連接,以便可以將其傳遞給模型的書架對象?

只需在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;
    }

還有其他方法可以執行此操作,但這很干凈,可以滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM