我正在尝试将猫鼬 findOne 方法与我的用户模型一起使用来查找 displayName(如果它已经存在),如果它确实存在,我想更改显示名称并再次检查它的唯一性,直到没有实现唯一的显示名称。我写的代码是这样的:
var mongoose = require('mongoose'),
User = mongoose.model('User'),
exports.signup = function(req, res) {
delete req.body.roles;
var message = null;
// Add missing user fields
req.body.provider='local';
req.body.displayName = req.body.firstName + ' ' + req.body.lastName;
var flag=false;
for( var i=1;i>=1;i++) {
console.log(req.body.displayName);
if(!flag) {
User.findOne({'displayName': req.body.displayName}, function (err, user) {
if (user) {
req.body.displayName = req.body.firstName + ' ' + req.body.lastName + '.' + i;
}
if (err) {
flag = true;
}
});
}
else break;
}
var user = new User(req.body);
// Then save the user
user.save(function(err) {
if (err) {
console.log('failed to save user');
});
} else {
// Remove sensitive data before login
user.password = undefined;
user.salt = undefined;
}
});
上面的代码提示错误:
});
^ Don't make functions within a loop.
我应该如何使用此代码生成唯一的显示名称?
您能提供的任何帮助将不胜感激!
-Parv