提问者:小点点

sails闪光验证不工作


我正在尝试验证控制器中的值,并将闪存错误消息发送到Sailsjs框架中的EJS视图文件。

我收到以下错误消息:


 if(flash && flash.err) { 
>>   flash is not defined in ejs file.

我已经在config/policies.js中添加了闪存策略

 '*': 'flash', 

这就是我重定向到错误视图的方式。

var usernamePasswordRequiredError = [{
                      name: 'usernamePasswordRequired',
                      message: 'You must enter both a username and password.'
                    }]

                    req.session.flash = {
                      err: usernamePasswordRequiredError
                    }

                   res.redirect("/user/loginpage");
                   return; 

flash.js内容


 Policy File:
    module.exports = function(req, res, next) {
    res.locals.flash = {};
    if(!req.session.flash) return next();
    res.locals.flash = _.clone(req.session.flash);
    req.session.flash = {};
    next();
};

帮助我解决此闪存不是视图文件中定义的错误。


共1个答案

匿名用户

sails.js已经加入了connect-flash,所以我使用了以下内容:

在服务器上,要设置:

req.flash('info', 'OHai');

在客户端上,获取:

res.req.flash('info');

这意味着我不必在_.clone()或那个大的要领上折腾,而且如果您执行多个req.flash('info','...');调用,那么当您在客户端检索它时,就会得到一个包含所有值的数组。当然,你也可以使用任何你想要的标签(不仅仅是'info')。

如果你需要更多的细节请告诉我。