gpt4 book ai didi

node.js - 在 sails v1.0 中禁用模型的自动填充

转载 作者:太空宇宙 更新时间:2023-11-04 02:01:52 24 4
gpt4 key购买 nike

我正在使用 Sailsjs v1.0.0-36。我想禁用模型人口。

因此,当我向 http://my-app/pets 发送 GET 请求时:

[
{
id: 1,
breed: 'Wolves',
type: 'Direwolf',
name: 'Ghost',
owner: 1, //user id
},
{
id: 2,
breed: 'Wolves',
type: 'Direwolf',
name: 'Summer',
owner: 1, //user id
},
]

当我向 http://my-app/users 发送 GET 请求时:

[
{
id: 1
firstName: 'John',
lastName: 'Snow',
pets: [ //array of pets id
1,
2,
]
}
]

其中User模型定义为

// myApp/api/models/User.js
// A user may have many pets
module.exports = {
attributes: {
firstName: {
type: 'string'
},
lastName: {
type: 'string'
},

// Add a reference to Pets
pets: {
collection: 'pet',
via: 'owner'
}
}
};

并且Pet模型定义为

// myApp/api/models/Pet.js
// A pet may only belong to a single user
module.exports = {
attributes: {
breed: {
type: 'string'
},
type: {
type: 'string'
},
name: {
type: 'string'
},

// Add a reference to User
owner: {
model: 'user'
}
}
};

在 Sails v0.12.0 中,您可以通过设置在 /config/blueprints.js 中执行此操作

populate = false

但这在 Sails v1.0 中已被弃用,继this之后从文档中我们可以通过重写parseBlueprintOptions来实现这一点,并且this是该函数的默认实现。

我如何覆盖它以获得所需的结果?

最佳答案

在这里看到一个实现: https://github.com/balderdashy/sails/issues/4130#issuecomment-310720365

parseBlueprintOptions(req) {
var queryOptions = req._sails.hooks.blueprints.parseBlueprintOptions(req);

if(!req.param('populate', false) && !queryOptions.alias) {
queryOptions.populates = {};
}
return queryOptions;
}

关于node.js - 在 sails v1.0 中禁用模型的自动填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com