美文网首页技术大拿
node配置连接MySQL

node配置连接MySQL

作者: TheRaging | 来源:发表于2021-01-17 22:24 被阅读0次

    第一种 原生方式

    • 需要安装的npm包

    npm i mysql

    const mysql = require('mysql')
    
     var connection = mysql.createConnection({//配置连接
            host: 'localhost',//数据库地址
            user : "xxx",//数据库用户
            password: "xxx",//数据库密码
            database : "world"//需要连接的数据库
        });
        
        connection.connect();//连接数据库
        
        connection.query('select * from city',function(err,results, fields){//执行sql语句
            if(err) throw err ;
            console.log('thesolution is:' ,result);
        });
        
        connection.end();//断开连接
    

    第二种

    • 使用连接池并使用封装调用方法

    npm i mysql

    const mysql = require('mysql')
    
    
    // 链接池:创建多个链接、复用与分发链接
    const pool = mysql.createPool({
      host: '',
      user: '',
      password: '',
      database: '',
      port: '3306',
    })
    
    // 封装,使用回调函数解决异步
    var  poolCallback = function(sql,callback){  
      pool.getConnection(function(err,connection){  
        connection.query(sql,function(err,results){  //使用函数做参数进行结果回调
            if(err){
                return
            }
          callback(results) // 结果回调
            connection.release() // 释放连接资源 | 跟 connection.destroy() 不同,它是销毁
         })
       
      })
    }
    
    //封装 使用promise解决异步
    var  poolPromise = function(sql){  
        return new Promise (resolve=>{
              pool.getConnection(function(err,connection){
                connection.query(sql,function(err,results){  //使用函数做参数进行结果回调
                    if(err){
                        return
                    }
                  resolve(results) // 结果回调
                    connection.release() // 释放连接资源 | 跟 connection.destroy() 不同,它是销毁
                 })
              })
            })
      
    }
    
    exports.poolCallback = poolCallback 
    exports.poolPromise = poolPromise 
    

    调用方法

    //引入模块
    var pool = require('./app/pool.js');
    //函数调用
    function (){
        pool.poolPromise("select * from user limit 1").then(data=>{
            loginResult.data=data
            res.json(loginResult);
        })
        }
    
    

    第三种

    npm i mysqls

    //ES6语法  识别不了
    //import { init, exec, sql, transaction } from 'mysqls'  
    
    
    
    let { init, exec, sql, transaction } = require('mysqls')
    
    //初始化数据库配置
    var inits = init({
         host: '',
         user: '',
         password: '',
         database: '',
         port: '3306',
       })
    //封装方法调用
    let getUser = function(user,limit){
      let sqlw =  sql
       .table('user')
       .field('*')
       .where(user)
       .limit(limit)
       .select(true)
       .exec();
        return sqlw
    }
    
    exports.getUser = getUser
    

    方法调用

    //引入模块
    var sql = require('./app/curd.js');
    
    //函数调用
    function () {
        var s = sql.getUser({status:0},1).then(res =>{
            console.log(res);
        })
    }
    

    相关文章

      网友评论

        本文标题:node配置连接MySQL

        本文链接:https://www.haomeiwen.com/subject/plwzaktx.html