如何在节点应用中使用实体化吐司

时间:2018-08-13 08:40:45

标签: node.js express materialize express-handlebars

我有一个节点/快速应用。在前端,我正在使用物化CSS,我想在用户注销时使用它的Toast功能。

以下是我的登出路线的代码:

// logout user
router.get('/logout', (req, res) => {
    req.logout();
    req.flash('success_msg', 'You are logged out');
    res.redirect('/');
});

,我想在用户注销时使用类似以下的内容:

 M.toast({html: 'I am a toast!'})

我有一个名为_msg.handlebars的部分,在其中定义了错误和成功消息的部分,这些错误和成功消息由server.js中的全局变量捕获:

{{#if success_msg}}
<div class="alert alert-success">{{success_msg}}</div>
{{/if}} {{#if error_msg}}
<div class="alert alert-danger">{{error_msg}}</div>
{{/if}} {{#if error}}
<div class="alert alert-danger">{{error}}</div>
{{/if}}

server.js文件中的全局变量:

// Global variables
app.use(function (req, res, next) {
    res.locals.success_msg = req.flash('success_msg');
    res.locals.error_msg = req.flash('error_msg');
    res.locals.error = req.flash('error');
    res.locals.user = req.user || null;
    next();
});

因此,我不想使用显示文字或警报的方式,而是使用物化的CSS吐司。

请告知!

1 个答案:

答案 0 :(得分:1)

我对_msg.handlebars进行了如下修改:

{{#if success_msg}}

<body onload="M.toast({html: '{{success_msg}}'})">

</body>
{{/if}} {{#if error_msg}}

<body onload="M.toast({html: '{{error_msg}}'})">

</body>
{{/if}} {{#if error}}

<body onload="M.toast({html: '{{error}}'})">

</body>
{{/if}}

目前为止工作正常,但如果有更好的建议,请提出建议。