node.js 中通过连接池连接mysql

568 阅读1分钟

首先来看一下什么是数据库的连接池(来自百度百科):数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。

接着,我们来看node.js 怎么实现数据库的连接池,这里,用mysql为例:

第一步,npm安装mysql模块

npm install mysql2 -S

第二步,创建数据库操作的模块(/model/init.js)

let mysql = require('mysql2')
// 定义 连接数据 默认端口 3306 如需要修改 port:端口
let createPool = mysql.createPool({
    host     : 'localhost',
    user     : 'root',
    password : 'admin123',
    database : 'code_test',
    charset:"utf8",
    connectionLimit1000//连接数
  });


  //查询
  const findAll = (sql, callback) => {
    createPool.getConnection((err, connection) => {
            if (err) {
                console.log(err)
                console.log('连接失败')
            } else {
                connection.query(sql, (errs, data) => {
                    if (errs) {
                        console.log('dasdasdsadasdasd')
                        console.log('[SELECT ERROR] - ', errs.message);
                        callback(errs,'')
                        return;
                    };
                    connection.release();
                    callback && callback(errs,data)
                });
            }
        })
    }

  //导出
  module.exports = {createPool, findAll}

最后,我们就可以在其他地方调用这个模块来进行高效率的数据库查询了:

const {findAll} = require('../../database/init')
                findAll('sql语句',(err,result) => {
                   
    })