Node链接MySQL数据库及封装

Node链接MySQL数据库

配置

包:mysql

下载 npm i mysql -s

index.js中引入模块

const mysql = require('mysql')
//配置数据库

//创建连接池
const pool = mysql.createPool({
    host:"localhost",
    port:"3306",
    user:"root",
    password:"root",
    database:"mydb",
    dataStrings:true //日期时间转换为字符串
})
//获取链接对象
pool.connection(function(err,collection){
    if(err){
        return;
    }
    
    //执行语句  注意:需要查询的地方用 ? 代替 字符串的拼接  比如:
    let sql = 'select * from teacher where name = ? and psw = ?'
    //代替 let sql = 'select * from teacher where name = '+'admin'
    //这样的原因是为了防止用户利用sql的漏洞,而?处放什么后面会讲到
    collection.query(sql,[user,psw],function(err,data){
        //解释参数的意思: 第一个 就是sql语句,第二个,就是问号里的值,第一个问号对应数组中第一个值,依次类推,第三个回调函数是当语句执行成功时传回的回调
        if(err){
            return;
        }
        console.log(data) //到这一步,已经成功的拿到了数据
    })
    
    
})

//data中会存放类似的数据:
[
  RowDataPacket {
    '姓名': '张三',
    '出生日期': '1996-07-11',
    '任职': '助教',
    '工资': 2600
  }
]

封装

现在需要把专门处理sql的数据库操作封装到一个util中,我们叫他sqlUtils

在sqlUtils中 写刚刚的一些代码,不过将之前的sql,sqlArr,callback进行了暴露 并且将config暴露出去以便于改动

const mysql = require('mysql')

module.exports = {
    config:{
        host:"localhost",
        port:"3306",
        user:"root",
        password:"admin",
        database:"张宇弛",
        dateStrings:true
    },
    sqlconnection(sql,sqlArr,callback){
        const pool = mysql.createPool(this.config)
        pool.getConnection((err,connection)=>{
            if(err){
                console.log(err)
                return
            }
            connection.query(sql,sqlArr,callback)
        })
    }
}

现在在index中我们只需要对sqlUtils进行引用即可

const sqlUtils = require('./utils/sqlUtils')//最前面的包依赖加上这个

//在需要查询的地方做如下操作即可
sqlUtils.sqlconnection('select * from teacher where 任职 = ? and 工资 = ?',['教授',7500],function(err,data){
       if(err){
           console.log(err)
           return;
       }
       console.log(data)
   })
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值