1. 在routes/users.js添加增删改查代码

具体增删改查代码如下:

const router = require('koa-router')()
const { User } = require('../models')

router.prefix('/users')



// 添加系统用户(封装前)
router.post('/add', async (ctx) => {
  let { username, pwd } = ctx.request.body

  await User.create({ username, pwd }).then(res => {
    if (res) {
      ctx.body = {
        code: 200,
        msg: '添加成功',
        data: res
      }
    } else {
      ctx.body = {
        code: 300,
        msg: '添加失败'
      }
    }
  }).catch(err => {
    ctx.body = {
      code: 400,
      msg: '添加时出现异常'
    }
    console.error(err)
  })
})


// 删除系统用户(封装前)
router.post('/del', async (ctx) => {
  let { _id } = ctx.request.body
  await User.findOneAndDelete(
    { _id }
  ).then(res => {
    ctx.body = {
      result: res
    }
  }).catch(err => {
    ctx.body = {
      code: 400,
      msg: '删除时出现异常'
    }
    console.error(err)
  })
})


// 修改系统用户(封装前)
router.post('/update', async (ctx) => {
  let paras = ctx.request.body
  await User.updateOne(
    { _id: paras._id },
    {
      username: paras.username,
      pwd: paras.pwd
    }
  ).then(res => {
    ctx.body = {
      result: res
    }
  }).catch(err => {
    ctx.body = {
      code: 400,
      msg: '修改时出现异常'
    }
    console.error(err)
  })

})


// 查询所有系统用户(封装前)
router.get('/find', async (ctx) => {
  await User.find().then(res => {
    ctx.body = {
      result: res
    }
  }).catch(err => {
    ctx.body = {
      code: 400,
      msg: '查询时出现异常'
    }
    console.error(err)
  })
})

// 查询单个系统用户(封装前)
router.get('/findone', async (ctx) => {
  let { _id } = ctx.request.body
  await User.findOne(
    { _id }
  ).then(res => {
    ctx.body = {
      result: res
    }
  }).catch(err => {
    ctx.body = {
      code: 400,
      msg: '查询时出现异常'
    }
    console.error(err)
  })
})

module.exports = router

2.封装业务逻辑层

(1)创建controller文件夹,并在其文件夹下创建user.js文件

通过增删改查来统一管理当前所有业务逻辑。

(2)user.js封装具体代码如下:

const { User } = require('../models')

// 添加系统用户
const userAdd = async (ctx) => {
    let { username, pwd } = ctx.request.body

    await User.create({ username, pwd }).then(res => {
        if (res) {
            ctx.body = {
                code: 200,
                msg: '添加成功',
                data: res
            }
        } else {
            ctx.body = {
                code: 300,
                msg: '添加失败'
            }
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '添加时出现异常'
        }
        console.error(err)
    })
}

// 删除系统用户
const userDelete = async (ctx) => {
    let { _id } = ctx.request.body
    await User.findOneAndDelete(
        { _id }
    ).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '删除时出现异常'
        }
        console.error(err)
    })
}

// 修改系统用户
const userUpdate = async (ctx) => {
    let paras = ctx.request.body
    await User.updateOne(
        { _id: paras._id },
        {
            username: paras.username,
            pwd: paras.pwd
        }
    ).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '修改时出现异常'
        }
        console.error(err)
    })
}

// 查询所有系统用户
const userFind = async (ctx) => {
    await User.find().then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '查询时出现异常'
        }
        console.error(err)
    })
}

// 查询单个系统用户
const userFindOne = async (ctx) => {
    let { _id } = ctx.request.body
    await User.findOne(
        { _id }
    ).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '查询时出现异常'
        }
        console.error(err)
    })
}


module.exports = {
    userAdd,
    userDelete,
    userUpdate,
    userFind,
    userFindOne
}

(2)在routes/users.js中引入controller/user.js文件并封装

const router = require('koa-router')()
const userCtl = require('../controller/user')
router.prefix('/users')

// 添加系统用户(封装后)
router.post('/add', userCtl.userAdd)
// 删除系统用户(封装后)
router.post('/del', userCtl.userDelete)

// 修改系统用户(封装后)
router.post('/update', userCtl.userUpdate)

// 查询所有系统用户(封装后)
router.get('/find', userCtl.userFind)

// 查询单个系统用户(封装后)
router.get('/findone', userCtl.userFindOne)

module.exports = router

3.封装CRUD

(1)在controller文件夹下新建crudUtil文件夹,在crudUtil文件夹下新建index.js文件

controller/crudUtil/index.js代码如下:

/**************************************
 * 封装简化:用于添加数据的公共方法
 * @param {*} model 
 * @param {*} params 
 * @param {*} ctx 
 */
const add = (model, params, ctx) => (
    model.create(params).then(res => {
        if (res) {
            ctx.body = {
                code: 200,
                msg: '添加成功',
                data: res
            }
        } else {
            ctx.body = {
                code: 300,
                msg: '添加失败'
            }
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '添加时出现异常'
        }
        console.error(err)
    })
)


/**************************************
 * 封装简化:用于删除数据的公共方法
 * @param {*} model 
 * @param {*} where 
 * @param {*} ctx 
 */
const del = (model, where, ctx) => (
    model.findOneAndDelete(where).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '删除时出现异常'
        }
        console.error(err)
    })
)

/**************************************
 * 封装简化:用于修改数据的公共方法
 * @param {*} model 
 * @param {*} where
 * @param {*} params 
 * @param {*} ctx 
 */
const update = (model, where, params, ctx) => (
    model.updateOne(where, params).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '修改时出现异常'
        }
        console.error(err)
    })
)


/**************************************
 * 封装简化:用于查询所有数据的公共方法
 * @param {*} model 
 * @param {*} where 
 * @param {*} ctx 
 * @returns 
 */
const find = (model, where, ctx) => (
    model.find(where).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '查询时出现异常'
        }
        console.error(err)
    })
)


/**************************************
 * 封装简化:用于查询单个数据的公共方法
 * @param {*} model 
 * @param {*} where 
 * @param {*} ctx 
 * @returns 
 */
const findOne = (model, where, ctx) => (
    model.findOne(where).then(res => {
        ctx.body = {
            result: res
        }
    }).catch(err => {
        ctx.body = {
            code: 400,
            msg: '查询时出现异常'
        }
        console.error(err)
    })
)


module.exports = {
    add,
    del,
    update,
    find,
    findOne
}

controller/user.js修改后的代码:

const { User } = require('../models')
const crud = require('./crudUtil')

// 添加系统用户
const userAdd = async (ctx) => {
    let { username = '', pwd = '' } = ctx.request.body
    await crud.add(User, { username, pwd }, ctx)
}

// 删除系统用户
const userDel = async (ctx) => {
    let { _id } = ctx.request.body
    await crud.del(User, { _id }, ctx)
}

// 修改系统用户
const userUpdate = async (ctx) => {
    let params = ctx.request.body
    await crud.update(
        User,
        { _id: params._id },
        { username: params.username, pwd: params.pwd },
        ctx
    )
}

// 查询所有系统用户
const userFind = async (ctx) => {
    await crud.find(User, null, ctx)
}

// 查询单个系统用户
const userFindOne = async (ctx) => {
    await crud.findOne(User, { _id: ctx.params.id }, ctx)
}


module.exports = {
    userAdd,
    userDel,
    userUpdate,
    userFind,
    userFindOne
}

GitHub 加速计划 / co / ComfyUI
44.41 K
4.72 K
下载
最强大且模块化的具有图形/节点界面的稳定扩散GUI。
最近提交(Master分支:1 个月前 )
1c08bf35 - 3 个月前
2a02546e * add type hints to folder_paths.py * replace deprecated standard collections type hints * fix type error when using Python 3.8 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐