zoukankan      html  css  js  c++  java
  • 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注入攻击。

           

           

  • 相关阅读:
    华硕路由器修改 Hosts 以达到局域网内自定义解析
    一款开源、高颜值的终端terminus,支持Windows、MacOS
    Windows 10启用Linux子系统(WSL)
    一款全能的下载工具Motrix,支持BT、磁力链、百度网盘等资源
    ubuntu 14.04 和16.04 快速下载
    CentOS 7一键安装Seafile搭建私有云存储
    background背景色
    3d爱心代码
    Mac Mini(late 2014) 添加NVMe固态组Fusion Drive
    member access within misaligned address 0x0000002c3931 for type 'struct ListNode‘
  • 原文地址:https://www.cnblogs.com/jiguiyan/p/11221855.html
Copyright © 2011-2022 走看看