我正在使用「帽子」生成令牌。嘗試在節點中查找操作5次
我想寫的非常偏執的代碼。所以,這個想法是系統生成一個ID,檢查它是否已經被使用(查詢數據庫),如果沒有,它會返回它。如果有,再試5次。 5次後,發生了一些非常奇怪的事情,應用程序會拋出一個錯誤。
簡短的問題是:如果令牌實際可用,如何讓該代碼按順序運行5次,並選擇調用傳遞的回調(請參閱「退出」循環)?
是是隻嘗試一次代碼:我想你是偏執
var hat = require('hat'),
mongoose = require('mongoose');
exports.makeToken = function(callback){
Workspace = mongoose.model("Workspace");
var found = false;
var token;
// Generate the token, check that it's indeed available
token = hat();
Workspace.findOne({ 'access.token':token } , function(err, doc){
if(err){
callback(err, null);
} else {
if(doc){
callback(new Error("Cannot generate unique token"), null);
} else {
callback(null, token);
}
}
});
}
其實,這是一個「循環」像這樣的一個常見的模式在節點和一般的異步編程? – Merc