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('删除失败,请检查参数')
}
})