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

目录
文章目录隐藏
  1. 学习前的准备页面和相关方法
  2. 查询方法的编写
  3. 添加数据操作
  4. 修改数据操作
  5. 删除数据操作

本文主要学习一下 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抓紧创作!

微信微信 支付宝支付宝

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
码云笔记 » 21. Egg.js教程-Egg.js 操作 MySql 数据库

发表回复