写了个登录注册的简单页面,但是当我第一次注册完以后不管怎么注册都说用户已存在
我的代码:
//存储用户信息
User.prototype.save = function(callback){
var user = {
name:this.name,
email:this.email,
password:this.password
};
mongodb.open(function(err,db){
if(err){
return callback(err);
}
db.collection('users',function(err,collection){
if(err){
mongodb.close();
return callback(err);
}
collection.insert(user,{
safe:true
},function(err,user){
mongodb.close();
if(err){
return callback(err);
}
callback(null, user[0]);
});
});
});
};
//获取用户信息
User.get = function(name, callback){
mongodb.open(function(err,db){
if(err){
return callback(err);
}
db.collection("users",function(err,collection){
if(err){
mongodb.close();
return callback(err);
}
collection.findOne({
name: name
},function(err,user){
mongodb.close();
if(err){
return callback(err);
}
callback(null, user);
});
});
});
};
router.get('/signup',function(req,res,next){
res.render('signup',{
title: '注册',
user:req.session.user,
success:req.flash('success').toString(),
error:req.flash('error').toString()
});
});
router.post('/signup',function(req,res){
var name = req.body.name,
password = req.body.password,
password_re = req.body['password-repeat'];
if(password_re != password){
req.flash('error','两次输入的密码不一样!');
return res.redirect('/signup');
}
//生成md5
//var md5 = crypto.createHash('md5'),
// password = md5.update(req.body.password).digest('hex');
var newUser = new User({
name:req.body.name,
password:req.body.password,
email:req.body.email
});
User.get(newUser.name,function(err,user){
if(user){
req.flash('error','用户已经存在!');
return res.redirect('/signup');
}
newUser.save(function(err,user){
if(err){
req.flash('error',err);
return res.redirect('/signup');
}
req.session.user = user;
req.flash('success','注册成功!');
res.redirect('/');
console.log(password);
});
});
});