访问Mysql数据库

博客简介

在 node 环境下,使用 express 框架访问 mysql 数据库,本文介绍和记录下具体的连接方法和详细代码

一、创建数据库连接池

创建 dbPool 文件,创建数据库连接池

// 引入mysql
var mysql = require('mysql');
// 创建连接池
var pool = mysql.createPool({
    connectionLimit: 50,
    host: '127.0.0.1',      // 连接的服务器
    user: 'admin',          // 用户名
    password: '123456',     // 用户密码
    database: 'db01'        // 选择的库
});

二、编写查询方法

dbPool 文件中创建 mysql 数据库的查询公共方法

exports.query = function (sql, P, C) {
    var params = [];
    var callback;
    // 如果用户传入了两个参数,就是SQL和callback  
    if (arguments.length == 2 && typeof arguments[1] == 'function') {
        callback = P;
    } else if (arguments.length == 3 && Array.isArray(arguments[1]) && typeof arguments[2] == 'function') {
        params = P;
        callback = C;
    } else {
        throw new Error('对不起,参数个数不匹配或者参数类型错误');
    }
    // 如果用户传入了三个参数,那么就是SQL和参数数组、回调函数  
    // 从池子里面拿一个可以使用的连接  
    pool.getConnection(function (err, connection) {
        // Use the connection    
        connection.query(sql, params, function () {
            // 使用完毕之后,将该连接释放回连接池      
            connection.release();
            callback.apply(null, arguments);
        });
    });
};

三、调用方法测试

// 引入 dbPool 文件
var db = require('./dbPool');

/**
 * 访问mysql数据库
 * @param {请求} req 
 * @param {结果} res 
 */
exports.connectMysqlDB = function(req, res) {
    var sql = 'SELECT * FROM table';    
    try {
        db.query(sql, function(err, result){    
            if(err) {
                console.log(err); 
                res.send({resCode: -200, data: '', msg: 'error'});
            }else {
                res.send({resCode: 200, data: result, msg: 'error'});
            }  
        });
    } catch (error) {
        res.send({resCode: -200, data: '', msg: 'error'});
    }
}