没转换前是这样
这样分成了两个数据
需要将他们转到一个数组中 sequalize不好做到 需要借助koa
源代码
import { secondCtgyModel } from './SecCtgyModel'
import { thirdCtgyModel } from './ThirdCtgyModel'
// OneToMany
secondCtgyModel.hasMany(thirdCtgyModel, {
as: 'thirdctgy',
foreignKey: 'secctgyid',
})
//ManyToOne
thirdCtgyModel.belongsTo(secondCtgyModel, {
foreignKey: 'secctgyid',
targetKey: 'secondctgyid', //主键
})
async function findSecThrdCtgysByFstCtgyId(firstctgyId: number) {
const result = await secondCtgyModel.findAll({
raw: true,
where: {
firstctgyId
},
include: [
{
model: thirdCtgyModel,
as: 'thirdctgy',
}
]
})
console.log(result);
}
findSecThrdCtgysByFstCtgyId(1)
去掉raw return出去result
这里加s 满足集合的感觉
然后再dao中操作
import findSecThrdCtgysByFstCtgyId from '../../../modules/ctgy/defmodel/OneToMany'
class CtgyDao{
static ctgyDao: CtgyDao = new CtgyDao();
async findSecThrdCtgys(firstctgyid: string) {
return await findSecThrdCtgysByFstCtgyId(parseInt(firstctgyid));
}
}
export default CtgyDao.ctgyDao
router配置
import Router from "koa-router";
import { success } from "@/common/ResResult";
import ctgyDao from '@/modules/ctgy/dao/CtgyDao'
const router = new Router();
router.prefix('/ctgymodule')
router.get('/findSecThrdCtgys/:firstctgyid', async (ctx, next) => {
const { firstctgyid } = ctx.params
const result = await ctgyDao.findSecThrdCtgys(firstctgyid)
ctx.body = success(result)
})
module.exports = router