为了账号安全,请及时绑定邮箱和手机立即绑定

想请问一段node代码,有点不太明白这个写法

想请问一段node代码,有点不太明白这个写法

蛊毒传说 2019-04-08 11:17:11
首先定义了一个函数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()
});
});
另外提醒一下,贴代码时要注意一下格式,缩进神马的不要搞错
                            
查看完整回答
反对 回复 2019-04-08
  • 2 回答
  • 0 关注
  • 552 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信