Node.Js连接mysql

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);

5.防止sql注入

6.mysql自动连接问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值