我试图在不渲染的情况下显示flash消息,只需重定向即可。如果是怎么可能的话?
const session = require('express-session');
const bodyParser = require('body-parser')
const urlencoded = bodyParser.urlencoded({extended:false})
const cookieParser = require('cookie-parser');
const flash = require('connect-flash');
app.use(cookieParser('secret'));
app.use(session({
secret: 'keyboardSecrIncKey',
resave: false,
saveUninitialized: true,
cookie: { secure: true, maxAge: 60000 }
}))
app.use(flash());
app.use('/test',urlencoded,(req,res,next)=>{
if(req.body.name == ''){
req.flash('info', 'Please Enter Your Name.');
res.locals.message = req.flash();
console.log(res.locals)
res.redirect('back')
}
else{
next()
}
});
我正在使用车把视图引擎。这是我的test.handlebars文件:
{{#if messages}}
It is working
{{/if}}
但它不会显示任何文本。如果我使用res.render('test',{…}(,它是有效的。但当我点击刷新按钮时,浏览器向我发送警报(确认重新提交表单等(
重定向时,会告诉用户的浏览器显示其他页面。您将在该页面中显示您的闪光消息,而不是在使用req.flash()
创建闪光消息的页面中。