用于在KNEX / BookshelfJS中定义“池”的语法

首先,我对这里的所有东西都很陌生…而且对于StackOverflow来说是新的东西,所以提前做个新手道歉,我已经准备好迎接我的颠簸了… LOL。

我们使用Heroku.addon作为Postgres,并利用/引用全局环境variables来访问正确的数据库。

我们的应用程序根目录中有一个config.js文件,如下所示:

db: process.env.DB_URL || { client: 'pg', connection: { database: 'db_name', user: 'user_name' } }, 

在这里有人能够引导我如何将初始化“自定义池”信息的代码集成到此设置中,如[ http://knexjs.org/#Installation-pooling] [ http://knexjs.org/#Installation-pooling] /#安装-池]

 var knex = require('knex')({ client: 'mysql', connection: { host : '127.0.0.1', user : 'your_database_user', password : 'your_database_password', database : 'myapp_test' }, pool: { min: 0, max: 7 } }); 

在Heroku上,process.env.DB_URL是一个复杂的URL,类似于:

 postgres://(redacted)@ec5-87-1-47-54.compute-1.amazonaws.com:5432/d8n2e9ebd0q9it 

所以,我希望有一个干净的方式来传递'自定义池'的信息,以及在这里或另一个文件/位置。

数据库通过Bookshelf / Knex在应用程序的后端被引用。 对书架的引用看起来类似于:

 var knex = require('knex')(config.db); var bookshelf = require('bookshelf')(knex); 

您可以通过从envvariables中读取连接详细信息来完成,如下所示:

 db: { client: 'pg', connection: process.env.DB_URL || { database: 'db_name', user: 'user_name' }, pool: { min:5, max:20 } },