Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

express 通过 req.session.user 设置权限管理

$
0
0

是按照“使用 Express + MongoDB 搭建多人博客 ”来写的,为了增加admin管理员功能,我设想的是比对req.session.user是否=‘管理员账号’。用checkManager函数实现

router.get('/post', checkManager);
router.get('/post', function (req, res) {
  res.render('post', {
    user: req.session.user,
    success: req.flash('success').toString(),
    error: req.flash('error').toString()
  });
});
router.post('/post', checkManager);
router.post('/post', function (req, res) {
  var currentUser = req.session.user,
      post = new Post(currentUser.name, req.body.title, req.body.post);
  post.save(function (err) {
    if (err) {
      req.flash('error', err);
      return res.redirect('/');
    }
    req.flash('success', '发布成功!');
    res.redirect('/');//发表成功跳转到主页
  });
});

//admin
function checkManager(req, res, next) {
  if (req.session.user !== 'jj') {
  //jj是管理员账号
    //req.flash('error', '没有权限!');
    return res.redirect('/test');
  }
  next();
}
但是跳转到http://localhost:3000/test的时候,提示“error not found”
请问是哪里出了错呢?
我在想是不是因为req.session.user返回的值是[object object]的形式?

Viewing all articles
Browse latest Browse all 14821

Trending Articles