2015-12-12 20 views
0

我試圖把下面的數據庫連接字符串到一個模塊:如何導出數據庫連接字符串節點/ Node.js的

require('dotenv').load(); 
var knex = require('knex')({ 
    client: 'pg', 
    connection: { 
     host: 'localhost', 
     user: process.env.DB_USER, 
     password: process.env.DB_USER_PASSWORD, 
     database: process.env.DB_NAME 
    }, 
    pool: { 
     min: 0, 
     max: 7 
    } 
}); 

到目前爲止,我嘗試:

require('dotenv').load(); 
module.exports = { 
knex : require('knex')({ 
    client: 'pg', 
    connection: { 
     host: 'localhost', 
     user: process.env.DB_USER, 
     password: process.env.DB_USER_PASSWORD, 
     database: process.env.DB_NAME 
    }, 
    pool: { 
     min: 0, 
     max: 7 
    } 
}) 

} 

在我的應用程序.js文件:

var knex = require('./models/database'); 
knex.select().table('users').then(function(result) { 
    result.forEach(function(value) { 
     console.log(value.first_name); 
    }); 
}); 

這會返回錯誤'knex'未定義。我認爲我的模塊被導出的方式不正確......有人可以幫忙嗎?

謝謝!

回答

0

這是因爲您正在導出包含knex的對象。 要麼添加knex的要求:

var knex = require('./models/database').knex; 

或更改您的出口

module.exports = require('knex')({ ... })