有人可以告诉我为什么flash消息在我的情况下不起作用吗?
这就是我尝试使用它的方式:
这是我app.js
的一部分:
var express = require('express');
var app = express();
var passport = require('passport');
var flash = require('connect-flash');
var session = require('express-session');
var exphbs = require('express-handlebars');
var passport = require('passport')
var RedisStore = require('connect-redis')(session)
var redis = require('redis').createClient();
app.use(session({
secret: "I can haz working sessions?",
store: new RedisStore({ client: redis })
}));
app.use(flash());
app.use(function(req, res, next){
res.locals.success = req.flash('success');
res.locals.errors = req.flash('error');
next();
});
app.use(passport.initialize());
app.use(passport.session());
这就是我试图在我的控制器中使用它的方式:
module.exports.storageCreatePost = function(req, res) {
req.flash('error', "Test");
res.redirect('/ftp/create');
})
这是我应该呈现消息的hbs
视图:
{{#if error}}
<p class="alert alert-warning">{{error}}</p>
{{/if}}
它成功地将我重定向到/ftp/create
,但不会呈现Flash消息..
答案 0 :(得分:0)
通过将res.locals.errors
替换为res.locals.error
答案 1 :(得分:0)
在app.get('/ftp/create',fun...
控制器中,尝试渲染flash消息,如
resp.render('view_fle',{
error:req.flash('error')
......
....