2017-01-03 4 views
0

Ich bin neu zu Pooling in Knoten js. Ich versuche eine Pool-Verbindung in der Datei crud_new_op.js zu starten und die Verbindung zu db_crud.js zu exportieren und in der Konsole zu protokollieren.undefined "Verbindung" während Datenbank-Pooling in Knoten js

Ich habe versucht, verschiedene Möglichkeiten, aber ich immer "undefiniert" für die Verbindung bekommen, dass ich aus dem Pool exportieren ...

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"); 
} 
}); 

Da bin ich nichts falsch mit der Datenbankverbindung.

Antwort

0

Sie sollten die Verbindung

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()' wird immer noch 'undefined' zurückgeben – Adam

+0

Nein. Ich habe das versucht. Es wird das Verbindungsobjekt angezeigt. – digit

+0

Ich bin auch immer undefiniert – VisheshRaju

2

Warum kehren Sie die pool.getConnection Funktion übergeben nicht nur nach vorn?

// 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

Dies sollte der einfachste Weg sein, ohne irgendeinen Callback zu übergeben. – digit

+0

Das funktioniert auch !! Danke ... Auch sehr einfach – VisheshRaju