Node& Express:req.flash()需要会话

时间:2016-10-09 07:20:13

标签: node.js express connect-flash

我在使用connect-flash时遇到了一些问题。 这是我的配置

var flash=require('connect-flash');
var session=require('express-session');

 app.use(flash());
 app.use(session({
    secret:settings.cookieSecret,
    key:settings.db,
    cookie:{maxAge:60000},
    resave:false,
    saveUninitialized:true
}));

app.use(function(req,res,next){
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});

我很困惑,我不知道如何解决这个问题

1 个答案:

答案 0 :(得分:0)

在声明会话中间件之后,您应该声明flash中间件

app.use(session({
    secret:settings.cookieSecret,
    key:settings.db,
    cookie:{maxAge:60000},
    resave:false,
    saveUninitialized:true
}));
app.use(flash());

Express按声明顺序处理中间件,因此当您使用flash中间件时,必须已声明会话中间件,否则您将收到错误。