首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Express 3、connect-flash和everyauth中未定义闪存

在Express 3、connect-flash和everyauth中未定义闪存
EN

Stack Overflow用户
提问于 2012-12-11 10:24:26
回答 1查看 1.7K关注 0票数 0

在升级到Express3之后,我体验了实现connect-flash的“乐趣”,并让它正常工作。

我是这样实现的:

代码语言:javascript
复制
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警报,如下所示:

代码语言:javascript
复制
- if ('undefined' !== typeof flash.error && flash.error.length)
    - each msg in flash.error
        div.error= msg

一切都很好,除了当我通过express呈现我的/login和/register页面时,当我得到一个"flash is not defined“错误时。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-12 21:41:23

好吧,这不是很好,但我已经找到了解决这个问题的办法。基本上,我已经在处理flash消息的express模板的块中添加了第一个if语句:

代码语言:javascript
复制
- 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,如下所示(注册和登录页面需要一个变量):

代码语言:javascript
复制
.registerView('register.jade')
    .registerLocals({
        title: 'Hi there, I am a register page',
        flash: null
    })

就像我说的,它不是很漂亮,但它似乎起作用了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13812653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档