Node.Js连接mysql
1.首先引入mysql模块(前提是电脑上已装过mysql)
2.引入express框架(非必须)
3.connection方法
附上代码(单一操作)
//应用程序入口文件
var mysql=require('mysql');
var db={};//创建一个空对象
//这个对象有一个query方法,接受两个参数,一个是查询的sql语句,一个是获取查询结果的回调函数
db.query=function sqlback(sqllan,fn){
//返回值connection是我们操作mysql的一个具体的对象,所有的操作方法都是基于他的
var connection=mysql.createConnection({
host:'localhost',
user:'root',
password:'',
database:'blog',
port: 3306
});
//connection有一个connect方法
connection.connect(function(err){
if(err){
console.log(err);
return;
}else{
console.log('连接mysql成功了');
}
});
var sql=sqllan;
if(!sql) return;
//connection有一个query方法
connection.query(sql,function(err,rows,fields){
if(err) {
console.log(err);
return;
}
if(rows){
for(var i=0;i<rows.length;i++){
console.log(rows[i].username);
}
}
});
//connection有一个end方法,用于关闭数据库连接
connection.end(function(err) {
if(err){
return;
}else {
console.log('连接关闭');
}
})
}
//将db对象exports出去
module.exports=db;
(多语句操作):必须在设置参数时,加上
multipleStatements: true;
调用时参数也需要注意格式
var sql='insert into user(username,password) values("zz",777); select * from user';
mysql.query(sql);
4.连接池方法
附上代码
var mysql=require('mysql');
var pool=mysql.createPool({
host:'localhost',
user:'root',
password:'',
port:'3306',
database:'blog'
});
//var connection = mysql.createConnection( { multipleStatements: true } );
var query=function(sql1,sql2,sql3,callback){
pool.getConnection(function(err,connection){
if(err){
callback(err,null,null);
}else{
//使用回调函数中的connection参数进行操作
connection.query(sql1,function(err,result){
console.log(result);
console.log('操作完毕');
});
connection.query(sql2,function(err,result){
console.log(result);
console.log('操作完毕');
});
connection.query(sql3,function(err,result){
console.log(result);
console.log('查询完毕');
//释放连接,在最后一步释放,不然会出错
connection.release();
console.log('数据库连接关闭');
});
}
})
}
//将db对象exports出去
module.exports=query;
调用时
var express=require('express');
var mysql=require('./db/db');
var app=express();
app.get('/',function(req,res){
mysql('insert into user(username,password) values("nn",125)','insert into user(username,password) values("mm",125)','select * from user');
});
app.listen(3000);