使用express+mongoDB搭建多人部落格 學習(5)許可權控制

來源:互聯網
上載者:User

標籤:

修改index.js如下:

var express = require(‘express‘);var router = express.Router();var crypto=require(‘crypto‘);var User=require("../models/user.js");/* GET home page. */router.get(‘/‘, function(req, res, next) {  res.render(‘index‘, {       title: ‘首頁‘,error:req.flash("error").toString(),      success:req.flash("success").toString(),      user:req.session.user   });});router.get(‘/reg‘,checkNotLogin);router.get(‘/reg‘,function(req,res,next){    res.render(‘reg‘, { title: ‘註冊‘ });});router.post(‘/reg‘,checkNotLogin);router.post(‘/reg‘,function(req,res,next){    var name=req.body.name,    password=req.body.password,    repassword=req.body.repassword;    if(repassword!==password){        req.flash("error","兩次輸入的密碼不一致");        return res.redirect("/reg");    }    var md5=crypto.createHash(‘md5‘);    password=md5.update(req.body.password).digest(‘hex‘);    var newUser=new User({        name:req.body.name,        password:password,        email:req.body.email    });    User.get(newUser.name,function(err,user){        if(user){            req.flash(‘error‘,"使用者名稱已存在");            return res.redirect("/reg");        }        newUser.save(function(err,user){            if(err){                req.flash("error",err);                return res.redirect("/reg");            }            req.session.user=user;            req.flash("success","註冊成功");            res.redirect("/");        });    });});router.get(‘/login‘,checkNotLogin);router.get(‘/login‘,function(req,res,next){    res.render(‘login‘, { title: ‘登入‘ });});router.post(‘/login‘,checkNotLogin);router.post(‘/login‘,function(req,res,next){    var md5=crypto.createHash("md5");    password=md5.update(req.body.password).digest(‘hex‘);    User.get(req.body.name,function(err,user){        if(!user){            req.flash(‘error‘,"使用者不存在");            return res.redirect("/login");        }        if(user.password!==password){            req.flash("error","密碼錯誤");            return res.redirect("/login");        }        req.flash("user",req.session.user=user);        req.flash(‘success‘,"登入成功");        res.redirect("/");    })});router.get(‘/logout‘,checkLogin);router.get("/logout",function(req,res){    req.flash("user",req.session.user=null);    req.flash("success","登出成功");    res.redirect("/");});router.get(‘/post‘,checkLogin);router.get(‘/post‘,function(req,res,next){    res.render(‘post‘, { title: ‘發表‘ });});router.post(‘/post‘,checkLogin);router.post(‘/post‘,function(req,res,next){});function checkLogin(req,res,next){    if(!req.session.user){        req.flash("error","未登入");        return res.redirect("/login");    }    next();}function checkNotLogin(req,res,next){    if(req.session.user){        req.flash("error","已登入");        return res.redirect("back");    }    next();}module.exports = router;

 

使用express+mongoDB搭建多人部落格 學習(5)許可權控制

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.