我的需求是想用redis自己做一个session模块,随机生成一个32位的字符串。如果判断这个值在redis中有的话,则递归调用接口重新生成一个。确保唯一性 部分代码
//根据key获取redis值 Session.prototype.get = function(key,next){ this.client.get(key,function(err,value){ if(err) next(err); next(null,value); }) }
Session.prototype.createUnionKey = function(next){ console.log(‘createUnionKey’); var str = '0123456789abcdefghijklmnopqrstuvwxzyABCDEFGHIJKLMNOPQRSTUVWXYZ’; var length = str.length; var SESSION = '’; for( var i = 0;i < 32;i++){ var num = Math.floor(Math.random()*length); SESSION += str.substring(num,num+1); } this.get(SESSION,function(err,value){ if(err) next(err); if(value != undefined ){ Session.prototype.createUnionKey(next);//这个位置应该递归调用这个方法,请问应该怎么写 }else{ next(null,SESSION); } }) }