node.js链接数据有两种方式:直接连接和通过连接池链接
备注:无论何种链接,都需要安装MySQL调用包,安装指令:npm install mysql -g
一、直接连接
var mysql=require('mysql');
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'neusoft.',
database:'xyongtest',
post:'3306'
});
connection.connect(function(err){
if(err){
console.log(err.toString());
}
});
//增加
/*var sql="insert into user(uname,pwd) value(?,?)";
var val=['王五','5555'];
connection.query(sql,val,function(err,rs){
if(err){
console.log(err);
}else{
console.log(rs);
console.log('插入成功');
}
});*/
//查询
connection.query('select * from user',function(err,rs){
if(err){
console.log(err);
}else{
for(var i=0;i<rs.length;i++){
console.log(rs[i]);
}
}
});
connection.end(function(err){
if(err){
console.log(err.toString());
}
});
二、连接池连接
备注:需额外安装node.js的mysqlpool模块,安装指令:npm install -g node-mysql //-g表全局
1、创建一个js文件( optPool.js ),用于创建MySQL连接池,其它模块若需要链接数据库,可以直接调用
var mysql=require('mysql');
function OptPool(){
this.flag=true;
this.pool=mysql.createPool({
host:'localhost',
user:'root',
password:'neusoft.',
port:'3306',
database:'xyongtest'
});
this.getPool=function(){
if(this.flag){
this.pool.on('connection',function(connection){
connection.query('set session auto_increment_increment=1');
this.flag=false;
});
}
return this.pool;
};
}
module.exports=OptPool;
2、其它模块可使用该连接池链接数据库
var optPool=require('./optPool.js');
var Pool=new optPool();
var pool=Pool.getPool();
pool.getConnection(function(err,conn){
if(err){
console.log(err.message);
}else{
//进行查询操作
conn.query('select * from user',function(err,rs){
if(err){
console.log(err.message);
}else{
for(var i=0;i<rs.length;i++){
console.log("姓名为:"+rs[i].uname+";密码为:"+rs[i].pwd);
}
conn.release();
}
});
}
});