'use strict';
const mysql= require('mysql');var local = true
varpool//创建连接池
if(local) {
pool=mysql.createPool({
connectionLimit:50,
host:'localhost',
user:'root',
password:'root',
database:'crawl',
multipleStatements:true //是否允许执行多条sql语句
});
}//将结果已对象数组返回
var row = (sql, ...params) =>{return new Promise(function(resolve, reject) {
pool.getConnection(function(err, connection) {if(err) {
reject(err);return;
}
connection.query(sql, params,function(error, res) {
connection.release();if(error) {
reject(error);return;
}
resolve(res);
});
});
});
};//返回一个对象
var first = (sql, ...params) =>{return new Promise(function(resolve, reject) {
pool.getConnection(function(err, connection) {if(err) {
reject(err);return;
}
connection.query(sql, params,function(error, res) {
connection.release();if(error) {
reject(error);return;
}
resolve(res[0] || null);
});
});
});
};//返回单个查询结果
var single = (sql, ...params) =>{return new Promise(function(resolve, reject) {
pool.getConnection(function(err, connection) {if(err) {
reject(err);return;
}
connection.query(sql, params,function(error, res) {
connection.release();if(error) {
reject(error);return;
}for (let i in res[0]) {
resolve(res[0][i] || null);return;
}
resolve(null);
});
});
});
}//执行代码,返回执行结果
var execute = (sql, ...params) =>{return new Promise(function(resolve, reject) {//获取连接
pool.getConnection(function(err, connection) {if(err) {
reject(err);return;
}//操作数据库
connection.query(sql, params, function(error, res) {//释放
connection.release();if(error) {
reject(error);return;
}
resolve(res);
});
});
});
}//模块导出
module.exports ={
ROW: row,
FIRST: first,
SINGLE: single,
EXECUTE: execute
}/*连接mysql*/
functionconnectToMysql() {var connection =mysql.createConnection({
host:'',
user:'',
password:'',
database:''});
connection.connect();//查询
connection.query('SELECT * FROM user;', function(err, rows, fields) {if (err) throwerr;
console.log('The solution is: ', rows[0]);
});//关闭连接
connection.end();
}