我在mongoose上进行了用户注册,我需要从可能的值生成唯一的随机ident
字段。问题是我无法查询到mongodb。
控制台中脚本的结果是" ONE"。就是这样。 那么,哪里出错?是否有更好的方法来生成唯一的随机字段/数字?
schemaUser.pre('save', function (next) {
var self = this;
function genIdent() {
var ident = "", possible = "013456789";
for(var i=1; i <= 5; i++)
ident += possible.charAt(Math.floor(Math.random() * possible.length));
return ident;
}
function doIt() {
var ident = genIdent();
console.log('ONE');
mongoose.model('User', schemaUser).findOne({ident: ident}, function(err, o) {
console.log('TWO');
if (o) {
doIt();
} else {
self.ident = ident;
next();
}
});
}
doIt();
});
答案 0 :(得分:0)
看起来你只是在生成ident,但是没有把它放到你的MongoDB中,并且在你将它保存在那里之前试图找到它...
能够访问具有该身份的文档,您需要先将其保存。
尝试使用console.log(错误)来查看返回的错误