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)
}
})
})
})