21. Egg.js教程-Egg.js 操作 MySql 数据库

本文主要学习一下 Egg.js 通过 egg-mysql 插件,如何操作数据库。我们讲过操作数据库的过程应该都在service里进行。

学习前的准备页面和相关方法

/service文件夹下面,新建一个文件testdb.js文件,专门用于操作数据库。在文件中编写下面的方法。方法分别代表增、删、改、查。

"use strict";

const Service = require("egg").Service;

class testdbService extends Service {
  // 添加数据库
  async addGirl() {}
  // 删除数据库
  async delGirl() {}
  // 修改数据库
  async updateGirl() {}

  // 查询数据库
  async getGirls(id) {}
}

module.exports = testdbService;

写完之后在/controller文件夹下面新增一个控制器girlsManage.js文件,是对女孩的管理。

"use strict";

const Controller = require("egg").Controller;

class GirlManage extends Controller {
  async addGirl() {
    const { ctx } = this;

    ctx.body = "添加女孩";
  }

  async delGirl() {
    const { ctx } = this;

    ctx.body = "删除女孩";
  }

  async updateGirl() {
    const { ctx } = this;

    ctx.body = "修改女孩";
  }

  async getGirls() {
    const { ctx } = this;

    ctx.body = "查询女孩";
  }
}

module.exports = GirlManage;

配置相关路由,这里我们全部使用get请求方式,在router.js文件下加入下面的代码。

router.get("/addGirl", controller.girlManage.addGirl);
router.get("/delGirl", controller.girlManage.delGirl);
router.get("/updateGirl", controller.girlManage.updateGirl);
router.get("/getGirls", controller.girlManage.getGirls);

然后打开终端,开启服务,然后打开浏览器,输入地址,查看写的方法是否可用http://127.0.0.1:7001/addGirl 。

查询方法的编写

我们先来学习一个最简单的方法,就是查询方法。进入/servic/testdb.js文件下的getGirls()方法。然后编写代码。

// 查询数据库
async getGirl(id){
    try{
      const app = this.app;
      const res= await app.mysql.select('girls');
      return res

    }catch(error){
      console.log(error);
      return null;
    }
}

写完代码以后,再编写/controller/girlManage.js文件下的getGirls()方法。

async getGirls() {
    const { ctx } = this;
    const res = await ctx.service.testdb.getGirl();
    ctx.body = '查询女孩:'+JSON.stringify(res);
}

添加数据操作

打开/app/service/testdb.js文件,在addGirl() 方法下,编写下面的代码。这里插入使用的insert()方法。

// 添加数据库
async addGirl(params){
  try {
    const { app } = this;
    const res = await app.mysql.insert('girls',params);
    return res;
  } catch (error) {
    console.log(error);
    return null;
  }
}

insert( ) 方法接收两个参数,第一个参数是表名称,第二个参数是插入到表里的值。

然后再到/app/controller/girlManage.js文件里addGirl()方法里编写代码。

async addGirl() {
  const { ctx } = this;
  const params = {
    name:'小白',
    age:18,
    skill:'头疗'
  }
  const res =  await ctx.service.testdb.addGirl(params);
  ctx.body = '添加女孩-成功!';
}

写完之后打开终端,运行npm run dev开启服务,然后在浏览器中输入http://127.0.0.1/addGirl就可以看到结果了。再打开Navicat for MySQL查看数据表的内容。如果没有任何错误,应该是可以顺利添加成功的。

修改数据操作

学会了添加,我们再来看一下如何来修改数据。打开/app/service/testdb.js文件,在updateGirl()方法中编写代码。

// 修改数据库
async updateGirl(params){
  try {
    const { app } = this;
    const res= await app.mysql.update('girls',params);
    return res;
  } catch (error) {
    console.log(error);
      return null;
  }
}

然后再到/app/controller/girlManage.js文件中的updateGirl()方法中。编写代码如下:

async updateGirl() {
  const { ctx } = this;
  const params = {
    id:3,
    name:'小白',
    age:20,
    skill:'头疗'
  }
  const res  = await ctx.service.testdb.updateGirl(params);
  if(res){
    ctx.body = '修改女孩-成功';
  }else{
    ctx.body = '修改失败';
  }
}

写完以后,就可以到浏览器中访问http://127.0.0.1/updateGirl

删除数据操作

最后我们再看一下如何删除数据。还是到/app/service/testdb.js文件下的delGirl()方法。编写下面的代码:

// 删除数据库
async delGirl(id){
  try {
      const { app } = this;
      const res = await app.mysql.delete('girls',id);
      return res;
  } catch (error) {
      console.log(error);
      return null;
  }
}

然后再到controller里边,进行编写delGirl()方法。

async delGirl() {
    const { ctx } = this;
    const id={"id":3};
    const res = await ctx.service.testdb.delGirl(id);
    console.log(res);
    if(res){
      ctx.body = '删除女孩-成功';
    }else{
      ctx.body = '删除失败';
    }
}

写好后,我们到浏览器里访问http://127.0.0.1/delGirl就可以了。

以上就是我们对数据库进行增删改查操作了。

到此为止,这就是本套Egg.js教程的全部内容了,当然这只是基础教程,以后我还会用Egg.js作为后台代码,Vue作为前端代码,做一个博客系统,请你持续关注码云笔记前端教程

「点点赞赏,手留余香」

0

给作者打赏,鼓励TA抓紧创作!

微信微信 支付宝支付宝

还没有人赞赏,快来当第一个赞赏的人吧!

声明:
1. 本站所有文章教程及资源素材均来源于网络与用户分享或为本站原创,仅限用于学习和研究。
2. 如果内容损害你的权益请联系客服QQ:1642748312给予处理。
码云笔记 » 21. Egg.js教程-Egg.js 操作 MySql 数据库

发表评论

IT互联网行业相关广告投放 更专业 更精准

立即查看 联系我们