我找不到一种仅使用sequelize(没有其他模块)来返回具有多个级别的树的方法。
Sequelize-hierarchy解决了这个问题,但是对我来说太多了-添加另一个表;返回父母...
我只需要列出孩子。
一个丑陋的解决方案是在include中编写include。但是在这种情况下,级别会受到限制。
坏方法:
include: [
{
model: models.access_Resource,
as: 'children',
required: false,
include: [
{
model: models.access_Resource,
as: 'children',
required: false,
include: [
{
model: models.access_Resource,
as: 'children',
required: false
}
]
}
]
}
]
我来自幼虫,我只用3条线就解决了这个问题。我相信与节点/续集没有什么不同。但是我找不到解决方法。
有人可以帮我吗?
## EDIT ##
快速的解决方案是创建一个帮助器,以递归方式将include包含在include中。
const buildTreeIncludes = (model, level) => {
if (level > 0) {
return {
include: {
model,
as: 'children',
required: false,
...buildTreeIncludes(model, level-1)
}
}
} else {
return {};
}
}
export default buildTreeIncludes;