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

Javascript “未定义”;“连接”;在节点js中的数据库池期间,javascript,node.js,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)=&g

我不熟悉节点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);
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");
 }
});
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);
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);
  });
}
crud\u op\u new.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);
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");
 }
});
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);
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);
  });
}

数据库连接没有问题。

您应该返回连接

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);
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");
 }
});
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);
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);
  });
}
crud\u op\u new.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);
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");
 }
});
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);
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);
  });
}

您应该返回连接

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);
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");
 }
});
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);
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);
  });
}
crud\u op\u new.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);
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");
 }
});
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);
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);
  });
}

为什么不向前传递
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);
});

为什么不向前传递
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);
});

exports.connection()
仍将返回
undefined
Nope。我试过了。它会显示连接对象。我也一样undefined@digit,函数中没有
return
语句,这意味着我将返回
undefined
Oh。我只是注意到你没有启动连接。在db_crud.js中调用create pool的位置
exports.connection()
仍将返回
undefined
Nope。我试过了。它会显示连接对象。我也一样undefined@digit,函数中没有
return
语句,这意味着我将返回
undefined
Oh。我只是注意到你没有启动连接。在db_crud.js中调用create pool的位置这应该是不传递任何回调的最简单方法。这应该是不传递任何回调的最简单方法。