【发布时间】:2014-04-22 23:18:46
【问题描述】:
我知道策略在控制器之前执行,我遇到了问题,我的项目在索引中有登录名,我需要验证密码是否正确,以防密码错误我需要显示一条消息说“密码错误”,但在同一个索引页面中,我在策略 req.session.mensaje 和 res.locals.mensaje 中声明了一个变量,我正在这样做:
这是我的政策
module.exports = function(req,res,next) {
res.locals.mensaje= '';
if(!req.session.mensaje) return next();
res.locals.mensaje = _.clone(req.session.mensaje);
req.session.mensaje='';
next();
};
这是我的控制器
login: function (req, res, next) {
var username = req.param('nickname');
var passw = req.param('password');
User.findOneByNickname(username).exec(function(err, users) {
if (err) {
console.log(err);
return next(err);
}
if (users){
if(users.password===passw){
req.session.username=users.username;
req.session.e_mail=users.e_mail;
res.view({user: users})
} else {
req.session.mensaje='Clave invalida.';
return res.redirect('/');
}
}
});
}
配置政策
'*': 'variables'
在索引中,策略尚未执行,我不能在那里使用我的变量 typeof 说是未定义的,但是当控制器被执行并且密码正确时,控制器将我带到视图登录并在那里我的变量的类型是字符串,请帮忙!我的英语很差,希望你能理解我。祝福。
【问题讨论】:
标签: javascript node.js session-variables sails.js