node.js数据库连接操作

数据库连接操作

安装mysql 数据库

npm install mysql --save

配置连接 单一 连接

const mysql = require('mysql');
const conn = mysql.createConnection({
    
    
    host:'localhost',
    user:'数据库的用户名',
    password:'数据库的密码',
    database:'数据库的名字'
})

执行查询操作

conn.query(sql, (err, result) => {
    
    
    if(err) throw err;
    // 处理结果集  增删改查
    // 。。。。。
})

单一连接模块封装

const mysql = require('mysql');

//  配置连接  连接池
const pool = mysql.createConnection({
    
    
    host:'localhost',
    user:'root',
    password:'root',
    database:'db_yun'
})

//  实现连接
module.exports = function(sql){
    
    
    return new  Promise((resolve, reject) => {
    
    
        //  从连接池中获取连接
        conn.query(sql, (err, result) => {
    
    
            if(err) reject(err);
            resolve(result)
        })
    })
}

配置连接池

const mysql = require('mysql');

//  配置连接  连接池
const pool = mysql.createPool({
    
    
    host:'localhost',
    user:'root',
    password:'root',
    database:'db_yun',
    connectionLimit:10
})

建立连接

// 方式1
pool.query(sql, function (error, results) {
    
    
  if (error) throw error;
  // 处理结果 
});

//  方式2
pool.getConnection(function(err, connection) {
    
    
  if (err) throw err; // not connected!
 
  // Use the connection
  connection.query('SELECT something FROM sometable', function (error, results, fields) {
    
    
    // When done with the connection, release it.
    connection.release();
 
    // Handle error after the release.
    if (error) throw error;
 
    // Don't use the connection here, it has been returned to the pool.
  });
});

连接池 模块封装

const mysql = require('mysql');

//  配置连接  连接池
const pool = mysql.createPool({
    
    
    host:'localhost',
    user:'root',
    password:'root',
    database:'db_yun',
    connectionLimit:10
})

//  实现连接
module.exports = function(sql){
    
    
    return new  Promise((resolve, reject) => {
    
    
        //  从连接池中获取连接
        pool.getConnection((err, connection) => {
    
    
            //  连接失败  抛出错误
            if(err) reject(err);
            // 连接成功, 进行正常的查询操作
            connection.query(sql, (err, result) => {
    
    
                //  查询完成后,释放连接 
                connection.release();
                //  查询失败 抛出错误
                if(err) reject(err)
                //  查询成功  处理数据
                resolve(result);
            })
        })
    })
}

如果SQL语句中使用占位符? 进行where语句操作,需要对实现连接的代码进行稍微改动; 接受第二个参数value 是一个数组; 为了适用于所有情况,可以给value 设置默认值

//  实现连接
module.exports = function(sql, value = []){
    
    
    return new  Promise((resolve, reject) => {
    
    
        //  从连接池中获取连接
        pool.getConnection((err, connection) => {
    
    
            //  连接失败  抛出错误
            if(err) reject(err);
            // 连接成功, 进行正常的查询操作
            connection.query(sql, value, (err, result) => {
    
    
                //  查询完成后,释放连接 
                connection.release();
                //  查询失败 抛出错误
                if(err) reject(err)
                //  查询成功  处理数据
                resolve(result);
            })
        })
    })
}

猜你喜欢

转载自blog.csdn.net/z459148345/article/details/114434810