首先定义了一个函数functioncheckLogin(req,res,next){if(!req.session.user){req.flash('error','未登录!');res.redirect('/login');}next();}然后下面这样的用法每太看明白啊,请问这样的写法是javascript的语法糖还是node的语法糖app.get('/reg',checkNotLogin);app.get('/reg',function(req,res){res.render('reg',{title:'注册',user:req.session.user,success:req.flash('success').toString(),error:req.flash('error').toString()});});求各位大大解释一下或者给个相关链接参考一下
2 回答
撒科打诨
TA贡献1934条经验 获得超2个赞
先给纠正一下,你示例中的这个这个代码是不对的:functioncheckLogin(req,res,next){if(!req.session.user){req.flash('error','未登录!');res.redirect('/login');//这里应该加个return,否则会出错(即res.redirect()和next()不能同时执行)}next();}或者写成:functioncheckLogin(req,res,next){if(!req.session.user){req.flash('error','未登录!');res.redirect('/login');}else{next();}}以下代码的用法不是JavaScript或者Node.js的语法糖,仅仅是Express.js的一个特性而已,与语法什么的没有任何关系:app.get('/reg',checkNotLogin);app.get('/reg',function(req,res){res.render('reg',{title:'注册',user:req.session.user,success:req.flash('success').toString(),error:req.flash('error').toString()});});与下面这样的写法作用是一样的:app.get('/reg',checkLogin,function(req,res){res.render('reg',{title:'注册',user:req.session.user,success:req.flash('success').toString(),error:req.flash('error').toString()});});另外提醒一下,贴代码时要注意一下格式,缩进神马的不要搞错
添加回答
举报
0/150
提交
取消