javascript - 如何使用 getconnection 方法创建 Node js MySQL 池

标签 javascript mysql node.js pool

我刚才说了学习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;

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

创建表函数生成错误,

任何可以帮助我的人都会感激不已。

最佳答案

我正在研究这段代码,然后想到了这个。

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();

关于javascript - 如何使用 getconnection 方法创建 Node js MySQL 池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46929554/

相关文章:

node.js - 在node.js中如何在处理uncaughtException中的某些异常时重新启动服务器

javascript - 为什么 Facebook 使用视频和 png 作为 gif?

javascript - 如何在一定距离内停止 twitter bootstrap scrollspy?

JavaScript - chop 数组的更有效方法

c++ - mysql c++ 连接器,如果连接断开,如何保持连接并重新连接?

node.js - 如何通过 Node expressjs 从 s3 提供静态网站?

javascript - 如何使用 Sigmajs 和 Neo4j 通过输入搜索检索节点?

php - 搜索 php assoc array (hash map) 作为 mysql

mysql - 从 innodb 转换为 MyISAM 以获取全文

node.js - 无法构建此 Angular 项目