在升级到Express3之后,我体验了实现connect-flash的“乐趣”,并让它正常工作。
我是这样实现的:
var flash = require('connect-flash');
app.use(flash());
app.use( function (req, res, next) {
res.locals.everyauth.user = req.user;
res.locals.user = req.user;
res.locals.flash = req.flash();
next();
});我在我的jade布局模板(所有页面都使用,对于flash.info、flash.warning等有类似的行)中显示flash警报,如下所示:
- if ('undefined' !== typeof flash.error && flash.error.length)
- each msg in flash.error
div.error= msg一切都很好,除了当我通过express呈现我的/login和/register页面时,当我得到一个"flash is not defined“错误时。有什么想法吗?
发布于 2012-12-12 21:41:23
好吧,这不是很好,但我已经找到了解决这个问题的办法。基本上,我已经在处理flash消息的express模板的块中添加了第一个if语句:
- if (flash !== null)
- if ('undefined' !== typeof flash.error && flash.error.length)
- each msg in flash.error
div.error= msg
- if ('undefined' !== typeof flash.warning && flash.warning.length)
- each msg in flash.warning
div.warning= msg
- if ('undefined' !== typeof flash.info && flash.info.length)
- each msg in flash.info
div.info= msg
- if ('undefined' !== typeof flash.success && flash.success.length)
- each msg in flash.success
div.success= msg然后,我在每个and的页面渲染语句中添加了一个局部变量,将flash设置为null,如下所示(注册和登录页面需要一个变量):
.registerView('register.jade')
.registerLocals({
title: 'Hi there, I am a register page',
flash: null
})就像我说的,它不是很漂亮,但它似乎起作用了。
https://stackoverflow.com/questions/13812653
复制相似问题