Sails workaround for deep populate

时间秒杀一切 提交于 2019-11-30 22:35:31

You could try to replace Waterline ORM with Offshore ORM. There is a hook for sails to do that - sails-hook-orm-offshore.

It's quite easy to implement to your existing project, because its fork of Waterline wits some more features. Only cons i found is that sails-hook-validation stopped working.

How to install

npm install sails-hook-orm-offshore --save

Configuration

.sailsrc

{
    "hooks": {
        "orm": false,
        "pubsub": false
    }
}

Defaults

config/globals.js

adapters: true,
models: true

Usage

Now you will be allowed to deep populate in your queries. For example (from documentation):

User.find()
.populate('foo.bar', { name: 'foo' }) //populate foo into user and bar into foo
.exec(function(err, users) {
    console.log(users[0].foo.bar.name) // 'foo'
});

Second option

Merge deep populate with waterline

npm i Atlantis-Software/waterline#deepPopulate
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!