序列化返回没有序列化树的树

时间:2018-11-26 20:11:45

标签: node.js sequelize.js

我找不到一种仅使用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;

0 个答案:

没有答案
相关问题