【问题标题】:How can I create a Node js MySQL pool with getconnection method如何使用 getconnection 方法创建 Node js MySQL 池
【发布时间】:2017-10-25 10:06:14
【问题描述】:

刚才说了学习node js,这段代码到现在为止。

//Create a mysql connection pool
var pool = mysql.createPool({
    connectionLimit : 100, //important
    host     : '127.0.0.1',
    user     : 'root',
    password : '',
    database : 'nodetuts',
    debug    :  false
});

// retrieve database connection
var connection = function(callback) {
    pool.getConnection(function(err, conn){
        if (err) {
            console.log(err);
            return;
        } 
        console.log('connected');
        callback(err, conn);
        
    });
};

//create tabase tables
connection.getConnection(function(err, conn){
    if (!err){
        console.log("Connected!");
        var rl = readline.createInterface({
            input: fs.createReadStream('struct.sql'),
            terminal: false
        });
        rl.on('line', function(chunk){
            conn.query(chunk.toString('ascii'), function(err, sets, fields){
                if(err){
                    console.log(err);
                }else{
                    console.log("Table created");
                }
            });
        });
    }
});
module.exports = connection;

我希望创建表函数在此模块中运行,但在其他模块中使用相同的连接。

创建表函数产生错误,

任何能帮助我的人都会感激不尽。

【问题讨论】:

  • 可以添加有问题的错误信息吗?
  • 这里是错误信息 getConnection.getConnection(function(err, conn){ ^ TypeError: getConnection.getConnection is not a function at Object. (E:\localhost\htdocs\nodejs\教程\dao.js:26:15)

标签: javascript mysql node.js pool


【解决方案1】:

我正在玩这段代码,然后我想出了这个。

var mysql      = require('mysql');
var fs         = require('fs');
var readline   = require('readline');

//Create a mysql connection pool
var pool = mysql.createPool({
    connectionLimit : 100, //important
    host     : '127.0.0.1',
    user     : 'root',
    password : '',
    database : 'nodetuts',
    debug    :  false
});

var saveConnection = pool.getConnection(function(err,conn){
    if (err) {
        console.log(err);
        return;
    }

    //create tables
    var createTables = function(conn){
        connection.release();
        var rl = readline.createInterface({
            input: fs.createReadStream('struct.sql'),
            terminal: false
        });
        rl.on('line', function(chunk){
            conn.query(chunk.toString('ascii'), function(err, sets, fields){
                if(err){
                    console.log(err);
                }else{
                    console.log("Table created");
                }
            });
        });
    }

    var findByPrimaryKey = connection.query("select * from user",function(err,rows){
        connection.release();
        if(!err) {
            res.json(rows);
        }          
    });

    conn.on('error', function(err) {      
        console.log(err);
        return;    
    });
    console.log('connected');
});

module.exports = saveConnection;

现在我的问题是:我可以使用下面的方法来访问 createTables 函数

saveConnection.createTables();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-06
    • 2013-09-05
    • 2023-04-07
    • 2023-03-29
    • 2021-07-15
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    相关资源
    最近更新 更多