我正在尝试创建一个使用ORM Bookshelf.js的库(如果愿意的话,基本上是Bookshelf.js上的包装器)。现在,Bookshelf.js要求您运行驱动程序安装,以便能够连接到项目根目录中的正确数据库(例如:npm install mysql
)。
我自己的库也需要这个,因为Bookshelf.js需要它,但它一直说Error: Cannot find module 'mysql'
这是正常的,因为Bookshelf实例在其node_modules文件夹中没有mysql依赖。
如果我输入结构,它将如下所示:
* New Project
** mysql
** LibThatUsesBookshelf
**** Bookshelf
现在Bookshelf.js可能需要这种结构:
* New Project
** LibThatUsesBookshelf
**** mysql
**** Bookshelf
有没有办法让我能够使用第一个结构显示书架?
P.S。我知道解释可能会让人感到困惑,但这是一个很难解决的问题,我没有办法解释它。
答案 0 :(得分:0)
让模块的客户端将实例传递给bookshelf:
// mysuperfancymodule.js
module.exports = function(bookshelf) {
// do fancy things with the bookshelf instance
}
然后在您的客户端应用程序中:
// some app code:
var mySuperFancyModule = require('mysuperfancymodule'); // assuming it is published to npm
var knex = require('knex')({
// init knex...
});
var bookshelf = require('bookshelf')(knex);
mySuperFancyModule(bookshelf); // init my super fancy module