如何使用Express和Connect-Flash在不刷新页面的情况下显示Flash消息?

尼克斯马克

仅在刷新后才显示快速连接闪存。代码被剥离以便于阅读。

"express": "~4.2.0",
"connect-flash": "~0.1.1",

这是我的 app.js

var express = require('express'),
    favicon = require('serve-favicon'),
    flash = require('connect-flash');
var app = express();
app.use(cookieParser('---'));
app.use(session({
  secret: '---',
  saveUninitialized: true,
  resave: true}));
app.use(flash());

app.use(function(req, res, next) {
  res.locals.messages = req.flash();
  next();
});

在我的路线中,我尝试了类似

req.flash('success', {msg: 'Sign Up Success'});
res.redirect('/me/dashboard');

我的错误显示msg.jade模板是

for msg in messages
      div #{msg.msg}

仅在刷新/重新定向后才收到消息。请让我知道我在做什么错。

我也看到,但我认为它已经过时了

拉杰什·乌贾德

您正在中间件中调用flash方法,这是中间件的预期行为。中间件将在下一个请求时读取消息,并根据您的逻辑将其设置为局部变量。

中间件如何工作?

当请求进入时,它连同包装的ServerResponse对象和下一个回调一起传递给第一个中间件功能。中间件可以决定通过调用响应对象上的方法来做出响应,和/或通过调用方法next()将请求传递给堆栈中的下一层。

连接闪存

闪存是会话中用于存储消息的特殊区域。消息被写入闪存,并在显示给用户后清除。Flash通常与重定向结合使用,以确保该消息可用于将要呈现的下一页。

仅在刷新/重定向后才收到消息?

app.use(function(req, res, next) {
    res.locals.messages = req.flash();
    next();
});

上面的中间件将在每个请求上调用并设置req.flash()值。因此,您将req.flash('success', {msg: 'Sign Up Success'});在每个下一个(后续)请求中获取值。如果不重定向/刷新页面,则不会在当前页面上获取值。

要覆盖此行为以获取不刷新的值,您req.flash()可以使用调用该函数,函数可用于路由器中的Flash消息res.locals.messages = req.flash();

例如:-在路由器中设置新的刷新消息后,在不刷新页面的页面上显示失败的登录消息,而在成功重定向页面上显示失败的登录消息。

router.post("/login", function (req, res) {
    var username = req.body.username;
    var pwd = req.body.pwd;
    if (username === "demo" && pwd === "demo") {
        req.flash("messages", { "success" : "Sign Up Success" });
        res.redirect("/me/dashboard");
    } else {
        req.flash("messages", { "error" : "Invalid username or password" });
        res.locals.messages = req.flash();
        res.render("login', { title: 'Login"});
    }
});

结论:要获得同一页面上的消息。通过在路由器本身中分配值来覆盖中间件的行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Flash消息:如何在不刷新页面但不刷新页面的情况下显示消息

来自分类Dev

使用ajax如何在不刷新页面的情况下显示特定td的值

来自分类Dev

如何在不刷新页面的情况下正确显示存储在外部模型中的数据?

来自分类Dev

如何在不刷新页面的情况下点击按钮后显示本地存储的内容?

来自分类Dev

如何在不刷新页面的情况下使用jQuery remove()?

来自分类Dev

如何在不刷新页面的情况下对表单使用验证?

来自分类Dev

如何使用 JQUERY 在不刷新页面的情况下对 PHP 循环进行排序

来自分类Dev

如何在不刷新页面的情况下连续更新PHP变量?

来自分类Dev

如何在不刷新页面的情况下重复each()

来自分类Dev

如何在不刷新页面的情况下获取laravel数据?

来自分类Dev

如何在不刷新页面的情况下登录网站

来自分类Dev

如何允许用户在不刷新页面的情况下进行搜索

来自分类Dev

如何在不刷新页面的情况下将数据保存到Mysql

来自分类Dev

如何在不刷新页面的情况下更新会话存储数据?

来自分类Dev

如何在不刷新页面的情况下正确加载Google Map API?

来自分类Dev

如何在不刷新页面的情况下检测 Service Worker 更新?

来自分类Dev

如何在不刷新页面MVC C#的情况下显示不同的值

来自分类Dev

如何实现像 facebook 这样的聊天,其中用户 A 在不刷新页面的情况下向用户 B 发送消息?

来自分类Dev

如何在不刷新页面的情况下更改路线和内容?(对机器人友好)

来自分类Dev

如何在不刷新页面的情况下使用Vue切换按钮

来自分类Dev

如何在不刷新页面的情况下使用jQuery Ajax通过URL传递参数?

来自分类Dev

单击后如何在不刷新页面的情况下如何使on('click')重置为onload状态?

来自分类Dev

如何在不刷新页面的情况下将python输出发送回html?

来自分类Dev

如何在不刷新页面的情况下捕获javascript中的php会话变量?

来自分类Dev

Rails 4-如何在不刷新页面的情况下触发对象编辑表单

来自分类Dev

如何在不更改/刷新页面的情况下基于AJAX请求更改URL?

来自分类Dev

如何在不刷新页面的情况下更改表单输入中的预览值

来自分类Dev

如何在不刷新页面的情况下从JavaScript代码执行C#方法?

来自分类Dev

如何在不刷新页面的情况下向html表单添加新字段

Related 相关文章

  1. 1

    React Flash消息:如何在不刷新页面但不刷新页面的情况下显示消息

  2. 2

    使用ajax如何在不刷新页面的情况下显示特定td的值

  3. 3

    如何在不刷新页面的情况下正确显示存储在外部模型中的数据?

  4. 4

    如何在不刷新页面的情况下点击按钮后显示本地存储的内容?

  5. 5

    如何在不刷新页面的情况下使用jQuery remove()?

  6. 6

    如何在不刷新页面的情况下对表单使用验证?

  7. 7

    如何使用 JQUERY 在不刷新页面的情况下对 PHP 循环进行排序

  8. 8

    如何在不刷新页面的情况下连续更新PHP变量?

  9. 9

    如何在不刷新页面的情况下重复each()

  10. 10

    如何在不刷新页面的情况下获取laravel数据?

  11. 11

    如何在不刷新页面的情况下登录网站

  12. 12

    如何允许用户在不刷新页面的情况下进行搜索

  13. 13

    如何在不刷新页面的情况下将数据保存到Mysql

  14. 14

    如何在不刷新页面的情况下更新会话存储数据?

  15. 15

    如何在不刷新页面的情况下正确加载Google Map API?

  16. 16

    如何在不刷新页面的情况下检测 Service Worker 更新?

  17. 17

    如何在不刷新页面MVC C#的情况下显示不同的值

  18. 18

    如何实现像 facebook 这样的聊天,其中用户 A 在不刷新页面的情况下向用户 B 发送消息?

  19. 19

    如何在不刷新页面的情况下更改路线和内容?(对机器人友好)

  20. 20

    如何在不刷新页面的情况下使用Vue切换按钮

  21. 21

    如何在不刷新页面的情况下使用jQuery Ajax通过URL传递参数?

  22. 22

    单击后如何在不刷新页面的情况下如何使on('click')重置为onload状态?

  23. 23

    如何在不刷新页面的情况下将python输出发送回html?

  24. 24

    如何在不刷新页面的情况下捕获javascript中的php会话变量?

  25. 25

    Rails 4-如何在不刷新页面的情况下触发对象编辑表单

  26. 26

    如何在不更改/刷新页面的情况下基于AJAX请求更改URL?

  27. 27

    如何在不刷新页面的情况下更改表单输入中的预览值

  28. 28

    如何在不刷新页面的情况下从JavaScript代码执行C#方法?

  29. 29

    如何在不刷新页面的情况下向html表单添加新字段

热门标签

归档