1、普通连接
init.js:
/**
* Created by web-01 on 2018/1/4.
*/
const mysql=require("mysql");
//创建连接
var conn=mysql.createConnection({
host:'127.0.0.1',
user:"root",
password:"",
database:"test",
port:3306
});
module.exports.conn=conn;
ex.js:
/**
* Created by web-01 on 2018/1/4.
*/
var express=require('express');
var app=express();
var m=require("./init.js");
var conn=m.conn;
app.get('/list',function(req,res){
var sql="SELECT * FROM test";
conn.query(sql,(err,result)=>{ //这里是异步操作
if(err) throw err;
//关闭连接
conn.end();//注:需要放在里面
if(result.length>0){
//res.send(result);
res.json(result);
console.log(result);
}else{
console.log("操作失败");
}
});
});
var server=app.listen(8081,function(){
});
-----------------------------------------------------------------------------
第二种:连接池
init1.js
/**
* Created by web-01 on 2018/1/4.
*/
const mysql=require("mysql");
var pool=mysql.createPool({
host:'127.0.0.1',
user:"root",
password:"",
database:"test",
port:3306,
connectionLimit:25 //连接数量限制
});
module.exports.pool=pool;
ex.js
var express=require('express');
var app=express();
var m=require("./init1.js");
var pool=m.pool;
app.get('/list',function(req,res){
var sql="SELECT * FROM test";
pool.getConnection((err,conn)=>{
conn.query(sql,(err,result)=>{ //这里是异步操作
if(err) throw err;
//关闭连接
conn.end();//注:需要放在里面
if(result.length>0){
//res.send(result);
res.json(result);
console.log(result);
}else{
console.log("操作失败");
}
conn.release();
});
});
});
var server=app.listen(8081,function(){
});
缺点:
只能访问一次,如果刷新访问,则连接已经断开。
解决方案:
普通连接中,注释conn.end(),不过这样应该是有隐患的;
连接池连接中,注释conn.release(),这样也是有隐患的。