2017-01-03 65 views
0

我是新增在節點js中進行池化。我正嘗試在crud_new_op.js文件中啓動池連接,並將連接導出到db_crud.js並將其記錄在控制檯中。節點js中的數據庫池中未定義的「連接」

我嘗試不同的方法,但我總是得到 「未定義」 因我從池出口連接...

db_crud.js

var express = require('express'); 
var app = express(); 

var crud = require('./routes/crud_op_new.js'); 

app.get('/search',(req,res)=>{ 
console.log(crud.connection); 
}); 

app.listen(8044); 

crud_op_new.js

var mysql = require('mysql'); 

var conn = require('../config/db_config.js'); 

var db = conn.database; 

var pool = mysql.createPool({ 
connectionLimit : 100, 
host : db.host, 
user : db.user, 
password : db.password, 
database : db.database 
}); 

pool.getConnection(function(err,connection){ 
if(!err){ 
    exports.connection; 
} 
else { 
    console.log("Error at pool creation"); 
} 
}); 

那裏我沒有錯誤的數據庫連接。

回答

0

您應該返回連接

db_crud.js

var express = require('express'); 
var app = express(); 
var crud = require('./routes/crud_op_new.js'); 

app.get('/search',(req,res)=>{ 
crud.connection(function (con) { 
    console.log(con); 
}); 
}); 

app.listen(8044); 

crud_op_new.js

var mysql = require('mysql'); 

var conn = require('../config/db_config.js'); 

var db = conn.database; 

var pool = mysql.createPool({ 
connectionLimit : 100, 
host : db.host, 
user : db.user, 
password : db.password, 
database : db.database 
}); 

exports.connection = function (callback) { 
    pool.getConnection(function(err,con){ 
    if(err) throw err; 
    return callback(con); 
    }); 
} 
+1

'exports.connection()'仍然會返回'undefined' – Adam

+0

不可以。我已經嘗試過了。它會顯示連接對象。 – digit

+0

我也變得相同undefined – VisheshRaju

2

你爲什麼不只是傳遞向前pool.getConnection功能?

// crud_op_new.js 
exports.connection = pool.getConnection.bind(pool); 

// db_crud.js 
crud.connection(function (err, con) { 
    if (err) throw err; 
    console.log(con); 
}); 
+0

這應該是最簡單的方式,而不需要傳遞任何回調。 – digit

+0

這也適用!謝謝...也很簡單 – VisheshRaju