對於Node API,我必須生成一個隨機的字母數字鍵,這應該是唯一的,並且SHORT(我不能使用uuid或Mongo ObjectID)。如何使用Node.js處理while循環內的異步操作?
我覺得這樣的邏輯:
- 生成密鑰,
- 查詢的MongoDB重點所有腦幹
- 如果鍵存在,重複上述過程,
- 如果鍵不存在,其分配和迴應客戶。
我試過那麼:
do {
key = randomKey(8);
newGroup.key = key;
Group.findOne({numberId: key}).then(function (foundGroup) {
console.log("cb");
if (! foundGroup) {
console.log("not found")
notUnique = false;
}
}).catch(function (err) {
return response.send(500);
});
} while (notUnique);
但是,只有我是一個無限循環,notUnique
是從未切換到true
。以防萬一,這是針對empy數據庫進行測試的。
我怎麼能實現它?
你能生成很多密鑰來測試嗎?如果是這樣,您可以使用$ in操作符批量查詢它們。你可能會發現比你生成的密鑰更少的對象,然後你只需檢查一個密鑰是否存在,而對應的對象不存在。 – laggingreflex