我看过this函数。
我可以看到它会产生一个slu ,,但我不太明白它是如何工作的。
在行327
上它从Model.findOne
函数返回promise,但在该Model.findOne
函数的回调中,它们递归地再次调用从行321
开始的外部函数。
任何人都可以帮助我吗?我需要生成一些独特的slu ,,这似乎是一个解决方案 - 如果我能理解它。
答案 0 :(得分:0)
checkIfSlugExists
函数确保数据库中没有slugToFind
slug的文档。
checkIfSlugExists
不仅仅是检查slug是否空缺,而且还有一些故障转移机制。所以,最终它会向空置的slug返回一个承诺:
slugToFind
不存在于数据库中,则会返回(行331
)。checkIfSlugExists
会检查longSlug
(行338-341
),这只是原始slugToFind
的较长版本。slugToFind
和longSlug
,则checkIfSlugExists
开始向longSlug
(行344-355
)添加数字,从2开始,直到找到一个空的slu .. 每次checkIfSlugExists
想要检查一些新的slug时,它会递归调用自己的新值。