我是站在节点js中的新手。我正在尝试在crud_new_op.js文件中启动池连接,并将连接导出到db_crud.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 :(得分: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);
});
答案 1 :(得分: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);
});
}