node系列--【node操作数据类的封装】

1) 一般将数据库的配置信息另存为外部模块, chyconfig.js(可命名为个人名字+config) 

let option = {
  host: "localhost", //数据库服务器的地址
  user: "root", //管理员账号
  password: "", //账号密码
  database: "xxxx"
}
module.exports = option;

2)创建数据库封装类 文件命名Chy.js

let mysql = require("mysql");
let option = require("./chyconfig");

class Chy{
  constructor({host="localhost",user="root",password="",database=""}){
    this.option = {
      host,
      user,
      password,
      database
    }
    // 创建一个连接对象
    this.connection = mysql.createConnection(this.option);
    // 自动连接数据库
    this.connection.connect();
  }
  query(sql,arr){
    return new Promise((resolve,reject)=>{
      // 异步操作代码
      this.connection.query(sql,arr,(err,result)=>{
        if(!err){
          resolve(result);
        }else{
          reject(err);
        }
      })
    })
  }
  close(){
    this.connection.end()
  }
}

let Chy= new Chy(option);

module.exports =Chy;

此 chyconfig.js和Chy.js个文件放在tools文件下;

使用时:

在入口文件引入  ../tools/Chy.js

添加响应路由,使用async...await对数据库增、删、改、查;如下:

//删除班级信息
router.get('/delbanji',async(req,res)=>{
  let b=await db.query("DELETE FROM `班级` WHERE id=?",[req.query.id]);
  console.log(b);
  if(b.affectedRows>0){
    res.send("<script>alert('删除"+req.query.id+"成功');window.history.go(-1)</script>")

  }else{
    res.send('删除失败,请检查参数')
    
  }

})
原文地址:https://www.cnblogs.com/chenhaiyun/p/14702709.html