https://github.com/mysqljs/mysql
安装依赖
cnpm i mysql -S
const mysql = require("mysql")const con = mysql.createConnection({host: '122.112.161.135',port: 10010,user: 'root',password: '123456',database: 'smart_city',dateStrings: true, //解决时间格式})con.connect(err => {if (err) {console.log("error connectiong:" + err.stack)}console.log('connected as id ' + con.threadId);})const sql_exec = (sql) => {return new Promise((resolve, reject) => {con.query(sql, (err, data) => {// con.release();if (err) reject(err)resolve(data);})})}module.exports = {sql_exec}
一、createConnection
用createConnection创建mysql连接,每次执行一次connecton.query都是一个全新的连接,会造成资源的极大浪费,降低性能。
二、Pool连接池
连接池是另外一种执行方法,它一次性的创建了多个连接,然后根据客户端的查询,自动的分发,复用,管理这些连接。
const mysql = require("mysql")const pool = mysql.createPool({host: '122.112.161.135',port: 10010,user: 'root',password: '123456',database: 'smart_city',dateStrings: true, //解决时间格式})const sql_exec = (sql,val) => {return new Promise((resolve, reject) => {pool.getConnection((err,con)=>{if(err){reject(err)console.log("数据库连接失败")}else{console.log("建立连接")con.query(sql,val,(err,result)=>{if(err){reject(err);}else{resolve(result);con.release();}})}})})}module.exports = {sql_exec}
三、使用
var sql = `select * from gg_user where user_id = 10000 `var result = await sql_exec(sql);
或
var sql = `select * from gg_user where user_id = ? `var result = await sql_exec(sql,[10000]);
