数据库连接操作
安装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);
})
})
})
}