首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Kraken.js配置图书架的Knex

如何用Kraken.js配置图书架的Knex
EN

Stack Overflow用户
提问于 2016-10-31 03:22:32
回答 1查看 138关注 0票数 1

我正在尝试集成Knex (我以前在一个不使用kraken.js的应用程序中使用过它),但是我现在需要它来实现我的ORM (bookshelf.js)。我在研究的时候偶然发现了这个职位,但我还是有点模糊。这是用于mysql DB的。

我应该在哪里创建连接,以便将它传递给我的模型的书架对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-22 23:41:38

只需将其设置为onconfig()处理程序中的全局对象即可。就像这样:

config.json

代码语言:javascript
复制
//...
"databaseConfig": {
  "host": // db host
  "database": // db name
  "user": //db user
  "password": //db pass
},

lib/bs.js

代码语言:javascript
复制
var bookshelf = require('bookshelf')(global.db);
module.exports = function Bookshelf() {
  return bookshelf;
};

index.js

代码语言:javascript
复制
var options = {
  onconfig: function(config, next) {
    global.db = require('knex')({
      client: 'mysql',
      connection: config.get('databaseConfig')
    });

    next(null, config);
  }
};

当您需要您的书架对象来定义您的模型时,您可以包含它,并且它已经准备好了:

models/accounts.js

代码语言:javascript
复制
   var bs = require('../lib/bs')();

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

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

有其他方法可以做到,但这是干净的,应该足以满足你的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40336152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档