节点js中数据库池期间未定义的“连接”

时间:2017-01-03 11:47:02

标签: javascript node.js

我是站在节点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");
 }
});

数据库连接没什么问题。

2 个答案:

答案 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);
  });
}