0
Я пытаюсь определить, работает ли рекурсия в моем случае использования ниже.Найти уникальное имя пользователя с рекурсией
Я передал в firstName
как параметр, и я генерирую уникальное имя пользователя для своего пользователя.
getUniqueUsername: function(firstName) {
if (!firstName) {
var randomNum = Math.floor(Math.random() * 9000) + 1000;
var username = firstName.substring(0, 4) + randomNum;
// check if username is already used - using recursion evaluate for performance
var user = Users.find({username: username}, {"_id": 1});
if (user) {
//call recursion method here
}
return username
} else {
return "";
}
}
Есть ли лучшие способы сохранить и запросить базу данных до тех пор, пока не будет найдено уникальное имя пользователя. Я думал о вызове рекурсии к тому же методу, когда user
возвращает true, но ищет возможные лучшие способы.
Вам просто нужно 'while' цикл. – Pointy
Также вы уверены, что 'Users.find()' является синхронным методом? (Может быть, но термин «запрос к БД» заставляет меня задаться вопросом ...) – Pointy
Это должен быть код на стороне сервера, который проверяет правильное имя пользователя или предоставляет подходящую альтернативу. Не какой-то клиентский скрипт. –