egg.js中使用egg-mysql操作mysql数据库

egg项目中安装 egg-mysql
npm i egg-mysql --save
2、在{app_root}/config/plugin.js中启用 egg-mysql插件:
'use strict';
/** @type Egg.EggPlugin */
module.exports = {
    //mysql
    mysql:{
        enable:true,
        package:'egg-mysql',
    }
};

3、在配置文件中配置 mysql数据库连接地址 {app_root}/config/config.default.js
config.mysql={
    //database configuration 
    client:{
        //host 
        host:'localhost',
        //port 
        port:'3306',
        //username 
        user:'root',
        //password 
        password:'123456',
        //database 
        database:'test'
    },
    //load into app,default is open //加载到应用程序,默认为打开
    app:true,
    //load into agent,default is close //加载到代理中,默认值为“关闭”
    agent:false,
};

二、egg-mysql 的命令查询

get 查找一条

let result = await this.app.mysql.get("user",{id:1})

查找数据的另一种方式

let result = await this.app.mysql.select("user",{
where:{id:1}
})

增加数据

let result = await this.app.mysql.insert("user",{username:"lisi",password:"1234"})

修改数据的第一种方式:根据主键修改

let result = await this.app.mysql.update('user',{ id:2, username:'赵四' });
//修改数据的第二种方式:通过 sql 来修改数据
let results=await this.app.mysql.query('update user set username = ? where id = ?',["王五",2]);

删除数据

let result= await this.app.mysql.delete('user',{ id:3 });

执行 sql

this.app.mysql.query(sql,values);

多表联查

let SQL=`select 主表名.参数`  附表.参数, from 主表名 left join 附表名 on 主表名.主表名.id=附表名.主表名id

let SQL=`select vote.voteId,vote.des,vote.title`,choose.content from vote left join choose on vote.voteId=choose.voteId
let result=await this.app.mysql.query(SQL)
return{
  code:1,
  msg:"成功"
}

mysql 事务

const conn=await this.app.mysql.beginTransaction();
try{
    await conn.insert('user',{'username':'xiao1','password':'1111'});
    await conn.update('user',{id:2,username:'黑子'});
    await conn.commit();  //提交事务
}catch(err){
    await conn.rollback();//回滚事务
    throw err;
}

发布了103 篇原创文章 · 获赞 19 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/M106588L/article/details/101076673