我正在尝试使用重定向发送数据:
this.redirect("/home",{message:'hello'});
但我的结果如下:
undefined redirect to home
如果有人遇到此问题,请提供帮助。
使用框架:locomotive
答案 0 :(得分:3)
是的,您可以使用express-flash:
app.use(flash());
...
app.get('/redirect', function (req, res) {
req.flash('info', 'Flash Message Added');
res.redirect('/');
});
您的数据在res.locals.messages
中非常适用,因此您的观点仅在messages
var中。
express flash基于连接闪存。它使用会话来传输消息。
如果您正在使用机车
机车以Express为基础,保留了您对Node所期望的功能和简单性。
这样:
module.exports = function() {
...
this.use(express.bodyParser());
this.use(express.session({ secret: 'keyboard cat' }));
this.use(flash());
...
}
答案 1 :(得分:0)
您可以(但不需要)使用express-flash模块进行闪存消息传递。快速会话模块公开的req.session和res.locals对象提供了编写自己的闪存中间件的途径,以更精确地满足您的需求。这个改编自Ethan Brown的书,Web Development with Node&表达
app.use(function(req, res, next){
// if there's a flash message in the session request, make it available in the response
res.locals.flash = req.session.flash;
// then delete it
delete req.session.flash;
next();
});
在重定向到目标路线之前,使用req.session.flash设置flash消息。
req.session.sessionFlash = {
type: 'success',
message: 'This is a flash message using custom middleware and express-session.'
}
使用目标路由的res.render方法中的res.locals.flash检索flash消息。
res.render('index', { flash: res.locals.flash });
有关Express 4中Flash消息的详细信息,请参阅下面的我的要点。