Mysql getConnection()不支持';t在nodejs中返回回调函数

Mysql getConnection()不支持';t在nodejs中返回回调函数,mysql,node.js,database,Mysql,Node.js,Database,我正在尝试从nodejs中的mysql连接池获取连接。但是池的getConnection方法不返回回调函数。(因此它不会显示任何错误或返回连接)。但是我的mysql工作台显示已经建立了连接。但是,当我使用连接时,它不会在回调中返回任何内容 var pool = mysql.createPool({ connectionLimit: 10, host: "localhost", database: "database", user: "root

我正在尝试从nodejs中的mysql连接池获取连接。但是池的getConnection方法不返回回调函数。(因此它不会显示任何错误或返回连接)。但是我的mysql工作台显示已经建立了连接。但是,当我使用连接时,它不会在回调中返回任何内容

   var pool = mysql.createPool({
      connectionLimit: 10,
      host: "localhost",
      database: "database",
      user: "root",
      password: "password"
   });

   exports.query = function (query, params, callback) {
      pool.getConnection(function (err, connection) {
        if (err) {

            console.log(err);
            connection.release();
            callback(err.code, null);
        }
        console.log("connected");
        connection.query(query, params, function (err, results) {
            connection.release();
            if (!err) {
                callback(null, results);

            }
            else {

                callback(err.code, null);

            }

        });

        connection.on('error', function (err) {
            connection.release();
            callback(err.code, null);
        });

    });           
}

这就是我使用数据库进行查询的地方

 exports.getLevels= function(callback){
    var query = 'SELECT * FROM levels';
    db.query(query,null, function (err, results) {
       if (err) {
          console.log(err);
       }
       console.log('reached');
       callback(err, results);
    });
 }

试试这一款这可能会有帮助

我正在使用这个npm包 使用此命令

npm i --save mysql
我认为要么您有本地主机用户和远程用户,要么您的mysql实例没有运行。确保您已经创建了一个在nodejs脚本中访问的本地用户,您可以从中获取帮助并使用检查连接

这是您的代码实现,在我这方面运行良好。

databaseFile.js

const mysql = require( "mysql" );
var pool = mysql.createPool({
    connectionLimit: 15,
    multipleStatements: true,
    host: "localhost",
    user: "root",
    password: "abcdefgh",
    database: "working_db",
    port: "3306"
 });

module.exports =( query, callback) => { 

    pool.getConnection((err, connection) => {
      if (err) {
          console.log(err);
          connection.release();
          callback(err.code, null);
      }
      console.log("connected");
      connection.query(query,  (err, results) => {
          connection.release();
          if (!err) {
              callback(null, results);
          }
          else {
              callback(err.code, null);
          }
      });

      connection.on('error',(err) => {
          connection.release();
          callback(err.code, null);

      });

  });
}
let GetBataBaseResponse = require("./databaseFile");

GetBataBaseResponse("Select * from tblagents",(error, result) => {
    console.log("error",error);
    console.log("result",result);
});
index.js

const mysql = require( "mysql" );
var pool = mysql.createPool({
    connectionLimit: 15,
    multipleStatements: true,
    host: "localhost",
    user: "root",
    password: "abcdefgh",
    database: "working_db",
    port: "3306"
 });

module.exports =( query, callback) => { 

    pool.getConnection((err, connection) => {
      if (err) {
          console.log(err);
          connection.release();
          callback(err.code, null);
      }
      console.log("connected");
      connection.query(query,  (err, results) => {
          connection.release();
          if (!err) {
              callback(null, results);
          }
          else {
              callback(err.code, null);
          }
      });

      connection.on('error',(err) => {
          connection.release();
          callback(err.code, null);

      });

  });
}
let GetBataBaseResponse = require("./databaseFile");

GetBataBaseResponse("Select * from tblagents",(error, result) => {
    console.log("error",error);
    console.log("result",result);
});

如果您仍然有问题消息me。

我似乎无法将
pool.getConnection
包装到函数中。当我在函数外部单独运行它时,回调被返回。(这意味着我在创建池后立即添加了
pool.getConnection
,只是为了看看会发生什么,它工作正常,但不是这样。我可以连接到
getResponse
方法所在的同一文件中的池。我也可以从另一个本地函数访问它。)(我可以从另一个本地函数调用
getResponse
方法。但一旦我导出该函数,它就会停止正确连接。我已经更新了答案。当我使用错误的凭据时,它就会崩溃。但是这个具有正确凭据的实现工作正常。我尝试了这个方法。只要我像您一样直接查询数据库,它就会工作完成了。但是如果我尝试在导出的函数中执行相同的操作,则回调不会返回。我已更新了我的问题,以显示在导出的函数中使用数据库查询的位置。