请教后端业务逻辑代码如何分离
資深大佬 : px920906 25
node+koa ,有这样一个接口:
router.post( '/order', {...}, async ctx => { const { body } = ctx.request // 一些需要查询数据库的参数验证逻辑,比如: const item = await Item.findOne({ where: { id: body.id } }) if (!item) { throw Error('item not existing') } // 后续逻辑 const result = await createOrder(body) ctx.body = result.id } )
createOrder这个函数因为其他接口 /逻辑也会用到所以单独抽出来了,于是产生个问题: 函数内部也有用到查询Item的地方,那这样的话,/order这一个接口得查询Item两次。例子是查一个,查列表的情况岂不是更浪费。
抽象出来大概是:如何避免 通用业务逻辑 与 调用它的 route 之间重复相同数据库查询操作?
求赐教!谢谢!
大佬有話說 (9)