vue3+koa2+mongodb打造comfyui画图系统:(二)使用mongodb实现用户的增删改查并封装
ComfyUI
最强大且模块化的具有图形/节点界面的稳定扩散GUI。
项目地址:https://gitcode.com/gh_mirrors/co/ComfyUI
免费下载资源
·
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 个月前
更多推荐
已为社区贡献5条内容
所有评论(0)