Page 129 - Node.js开发指南
P. 129

122  第 5 章  使用 Node.js 进行 Web 开发



                     //检查用户名是否已经存在
                     User.get(newUser.name, function(err, user) {
                       if (user)
                         err = 'Username already exists.';
                       if (err) {
                         req.flash('error', err);
                         return res.redirect('/reg');
                       }
                       //如果不存在则新增用户
                       newUser.save(function(err) {
                         if (err) {
                           req.flash('error', err);
                           return res.redirect('/reg');
                         }
                         req.session.user = newUser;
                         req.flash('success', '注册成功');
                         res.redirect('/');
                       });
                     });
                   });

                   app.get('/login', checkNotLogin);
                   app.get('/login', function(req, res) {
                     res.render('login', {
                       title: '用户登入',
                     });
                   });

                   app.post('/login', checkNotLogin);
                   app.post('/login', function(req, res) {
                     //生成口令的散列值
                     var md5 = crypto.createHash('md5');
                     var password = md5.update(req.body.password).digest('base64');

                     User.get(req.body.username, function(err, user) {
                       if (!user) {
                         req.flash('error', '用户不存在');
                         return res.redirect('/login');
                       }
                       if (user.password != password) {
                         req.flash('error', '用户口令错误');
                         return res.redirect('/login');
                       }
                       req.session.user = user;
                       req.flash('success', '登入成功');
                       res.redirect('/');
                     });
                   });
   124   125   126   127   128   129   130   131   132   133   134