用node+express4写了个简单的登录注册页面,但是出现了个bug不知道怎么解决? 10C

写了个登录注册的简单页面,但是当我第一次注册完以后不管怎么注册都说用户已存在

我的代码:

 //存储用户信息
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);
    });
  });
});

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐