Sequelize 实现增删改查

Sequelize 实现增删改查

1、引入所需模型(项目中是user)和Sequelize

import { User } from '../models'
import Sequelize from 'sequelize';
const Op = Sequelize.Op;

2、查询列表

/**
 * @description: 获取列表数据
 * @param : page: 查询页 pageSize: 当前条数 key:模糊查询关键字, limit和offset实现条数限制
 * @return: 
 */
export async function getUserList (ctx, next) {
  const { page = 1, pageSize = 10, key = "" } = ctx.request.body;
  // 查询总数
  const counts = await User.count();
  // 查询列表
  const userList = await User.findAll({
    where: {
      [Op.or]: [
        {
          name: {
            [Op.like]: `%${key}%`
          }
        },
        {
          department: {
            [Op.like]: `%${key}%`
          }
        }
      ]
    },
    order: Sequelize.col('id'),
    limit: Number(pageSize),
    offset: Number(pageSize) * (page - 1)
    // attributes: ['chartId', 'chName', 'enName', 'createTime', 'mark']
  });
  const data = {
    page: Number(page),
    pageSize: Number(pageSize),
    total: counts,
    list: userList
  }
  ctx.body = { code: '000000', message: 'success', data: data };
}

 

3、新增、编辑数据

/**
 * @description: 新增 / 编辑用户
 * @param : 根据id是否存在新增和编辑用户
 * @return: 
 */
export async function editUser (ctx, next) {
  const { name, passward, department, mark, id = '' } = ctx.request.body;
  const userItem = {
    name: name,
    passward: passward,
    department: department,
    mark: mark
  };
  const result = id ? await User.update(userItem, {
    where: {
      id: {
        [Op.like]: id
      }
    }
  }) : await User.create(userItem);
  const dataMessage = result ? id ? '编辑成功' : '新增成功' : result;
  ctx.body = { code: '000000', message: 'success', data: dataMessage };
}

4、删除数据

/**
 * @description: 删除流程, 根据流程id进行删除
 * @param : id 用户id
 * @return:
 */
export async function deleteUser (ctx, next) {
  const { id } = ctx.request.body;
  const deleteResult = await User.destroy({
    where: {
      id: {
        [Op.like]: id
      }
    }
  });
  const data = deleteResult ? '删除成功' : deleteResult;
  ctx.body = { code: '000000', message: 'success', data: data };
}

项目示例地址

https://github.com/JiannanLv/node-koa-server

随笔小结,不喜勿喷,谢谢

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值