美文网首页
Egg 增删改查 mysql

Egg 增删改查 mysql

作者: 张思学 | 来源:发表于2020-05-19 14:58 被阅读0次

实现连接数据库后的基本功能

  1. app/router.js 添加路由
router.get('/user', controller.user.list); // 查
router.post('/user/add/:name', controller.user.add); // 增
router.del('/user/delete/:id', controller.user.delete); // 删
router.put('/user/change', controller.user.change); // 改
  1. app/controller/ 下创建 user.js
'use strict';

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

class UserController extends Controller {
  async list() {
    const ctx = this.ctx;
    const user = await ctx.service.user.searchAll();
    ctx.body = {
      csrf: ctx.csrf,
      user,
    };
  }

  async add() {
    const ctx = this.ctx;
    console.log(ctx.query);
    const userName = ctx.params.name;
    const isSuccess = await ctx.service.user.add(userName);
    ctx.body = isSuccess;
  }

  async delete() {
    const ctx = this.ctx;
    const userId = ctx.params.id;
    const isSuccess = await ctx.service.user.delete(userId);
    ctx.body = isSuccess;
  }

  async change() {
    const ctx = this.ctx;
    console.log(ctx.query);
    const params = ctx.query;
    const isSuccess = await ctx.service.user.change(params);
    ctx.body = isSuccess;
   }
}

module.exports = UserController;
  1. app/ 下创建 service 文件夹, 并在文件夹下创建 user.js
'use strict';

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

class UserList extends Service {
  async searchAll() {
    const users = await this.app.mysql.select('user');
    return { users };
  }
  async add(name) {
    const result = await this.app.mysql.insert('user', { name });
    const isSuccess = result.affectedRows === 1;
    return isSuccess;
  }
  async delete(id) {
    const result = await this.app.mysql.delete('user', { id });
    const isSuccess = result.affectedRows === 1;
    return isSuccess;
  }
  async change(params) {
   const isSuccess = await this.app.mysql.beginTransactionScope(async conn => {
      const result = await conn.update('user', params);
      const success = result.affectedRows === 1;
      if (success) {
        conn.insert('user', { name: 'tx-test' });
        throw new Error('rollback');
      }
      return success;
    }, this.ctx);
    return isSuccess;
  }
}

module.exports = UserList;

注:犹豫egg安全机制 csrf 的更新,可能你使用postman请求的post、put、delete 都为403;不多做解释我们先关闭安全机制

  1. 进入 /config/config.default.js 内添加
config.security = {
  csrf: {
    enable: false,
  },
};

相关文章

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • egg-mysql增删改查

    当前在做的一个项目,涉及了egg的插件egg-mysql的一些增删改查功能实现 回顾 1.egg目录结构:主要的a...

  • Egg 增删改查 mysql

    实现连接数据库后的基本功能 在 app/router.js 添加路由 在 app/controller/ 下创建 ...

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • node.js操作mysql学习笔记

    普通连接的增删改查 查 改 增 连接池 Pool options //mysql的github直接拷贝的,创建po...

  • mysql

    mysql 增删改查数据库的增删改查: create drop alter show表结...

  • knexjs 对mysql数据库进行简单的增删改查

    记录自己开发小程序时学习mysql的过程,以下知识点均来自网络 增删改查入门篇 查 增 改 删 where的用法

  • 浅谈Redis持久化

    大家都知道Redis增删改查的操作比MYSQL增删改查操作要快。原因是MYSQL的增删改操作是在硬盘上直接操作,而...

  • node的前后链条思路

    curd || resetfo(增删改查)增删改查就是调用数据库-mysql-sequelize 接口 $ npm...

  • JAEE学习笔记(17)mysql

    MySQL数据库 数据库(CURD -- 增删改查) 表(table)(CURD -- 增删改查) 数据(CURD...

网友评论

      本文标题:Egg 增删改查 mysql

      本文链接:https://www.haomeiwen.com/subject/qnfbohtx.html