Leezy__ 2015-09-13 14:39 采纳率: 0%
浏览 2503
已结题

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

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

我的代码:

 //存储用户信息
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条回答

  • threenewbee 2015-09-13 15:34
    关注
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!