Node 之 连接MySql

 在安装好MySql的基础下,我们需要在Node.js连接MySql使用的是mysql模块。使用MySQL模块前需要使用NPM来安装:

npm install mysql

mysql模块通过createConnection()方法创建MySQL连接,下面的代码即和本地的MySQL数据库建立连接。

const mysql=require('mysql');

const connection=mysql.createConnection({
    
    
    host:'localhost',
    user:'root',
    password:'root'
});

connection.connect(function(err){
    
    if(err){
        
        console.error('error connection:'+err.stack);
        return;
    }
    console.log('connect as id'+connection.threadId);
    
});

 在上述代码中:CreatConnection()方法创建连接,connection.connect()方法判断连接是否成功。CreatConnection()方法接受一个json对象参数。json对象主要使用的字段有:

  • host:需要连接数据库地址,默认为localhost。
  • port:连接地址默认的端口,默认为3306.
  • user:连接MySQL时使用的用户名
  • password:用户名对应的密码
  • database:所需要连接的数据库名称

通过end()方法可以正常地终止一个连接:

connection.end(function(err){
    console.log(err);
})

当然使用destory()方法也可以终止连接,该方法会立即终止底层套接字,不会触发更多的事件和回调函数。

connection.destory()

 

Node.js操作MySQL

           当连接MySQL成功后,就需要通过Node.js来操作数据库了。MySQL模块提供了一个名为query()的方法,可以用来执行SQL语句,从而对MySQL数据库进行相应的操作。

 

假设我们连接的数据库ssh_forum中的answer数据表,

可以使用以下代码将这个data数据表记录查询出来

const mysql=require('mysql');

const connection=mysql.createConnection({
    
    
    host:'localhost',
    user:'root',
    password:'root'
});


//连接MySQL
connection.connect(function(err){
    //连接出错的处理
    if(err){
        
        console.error('error connection:'+err.stack);
        return;
    }
    console.log('connect as id'+connection.threadId);
    
});

//查询数据
connection.query('select * from ssh_forum.answer',function(err,rows){
    
    if(err){
        console.log(err);
        
    }else{
        console.log(rows);
    }
});

最终显示的结果:

上述图片将所有的记录查询出来并打印出来了

    上述代码中connection.query()方法的第一个参数是一条SQL语句,第二个参数是一个回调函数,回调函数中的第一个参数是err,第二个参数是执行SQL语句后返回的记录。

     connection.query()方法还有一个paramInfo参数可选,当SQL语句中含有一些变量的时候,可以将“?”作为占位符放置在SQL语句中,通过paramInfo参数传递给SQL语句。

   

const table="mytable";

//查询数据
connection.query('select  *  from ?',[table],function(err,rows){
    
    if(err){
        console.log(err);
        
    }else{
        console.log(rows);
    }
});

 

mysql模块提供了一个escape()方法,用来防止SQL注入攻击。SQL注入攻击的本质是黑客在提交给服务器的数据中带有SQL语句,试图欺骗服务器,让服务器运行自己的恶意SQL语句,因此在使用escape方法处理用户提交的数据可以防止SQL注入攻击。

       

       

posted @ 2019-07-23 15:52  perfect*  阅读(905)  评论(0编辑  收藏  举报
$(function() { $('#cnblogs_post_body img').each(function() { let imgSrc = $(this).attr('src'); let year = parseInt(imgSrc.substr(imgSrc.indexOf('g')+1,4)); if(year >= 2022){ imgSrc += `?watermark/2/text/amlndWl5YW4=/font/5a6L5L2T/fontsize/15/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast`; $(this).attr('src', imgSrc) } }) })