PARAM我有falowing情况的一个问题:回环model.find基于从相关模型
Model 1: Guest - props {"slug":"string"}
Model 2: Project - props {"prefix":"string"}
Relation: Project has many guests
如何编写远程方法:findGuestWithProject(prefix, slug)
,将返回guest
与slug
(完全一致,但不区分大小写)和相关项目与确切的prefix
?
问题我遇到过:有相似但不准确的蛞蝓F.E.
初始过滤回报
Guests
如果我通过"anna"
.find
可以返回slug"anna-maria"
的客人,所以稍后我需要检查id slug是否完全相同。初始过滤返回
Guests
不同project.prefix
所以我需要做额外的循环来找到完全匹配。如果找不到匹配,我需要计算迭代来返回回调。
Guest.getGuestProject = function(prefix, slug, cb) {
if (!prefix) return;
var pattern = new RegExp(slug, "i");
app.models.Project.findOne({
"where": {"prefix": prefix}
},(err, project) => {
if (err) { throw err};
if (!project) cb(null, null);
return project.guests({
"where": {"slug": pattern },
"include": {"relation": "project", "scope": {"include": {"relation": "rsvps"}}}
}, (err, guests) => {
if (guests.length === 0) cb(null, null)
guests.forEach(guest => {
if (guest.slug.toLowerCase() === slug.toLowerCase()) {
cb(null, guest)
}
})
})
})