-1

在我的控制器中访问flash messages视图时出现问题node.js

this.req.flash('info','successfully submited');
this.redirect("/home");

在我的家庭视图中,我无法flash messages获得

req.flash('info');

编辑 在控制器

self.req.flash('message','hello');

在视图中

<%= req.flash('message) %>

在 server.js 中

app.configure(function (){

  app.use(express.cookieParser());
  app.use(express.session({ secret:'yoursecret',cookie: { maxAge: 24 * 60 * 60 * 1000 }}));
  app.use(passport.initialize());
  app.use(locomotive.session());
  app.use(flash());
  app.use(passport.session());
  app.use(app.router);

  app.dynamicHelpers({ messages: require('express-messages') });
});

我有机车框架。

4

2 回答 2

0

按顺序移动你的app.use(flash())更高...见下文。Flash 需要在护照之前初始化,以便 Flash 被识别并可供护照使用。

app.configure(function (){
  app.use(express.cookieParser());
  app.use(express.session({ secret:'yoursecret',cookie: { maxAge: 24 * 60 * 60 * 1000 }}));
  app.use(flash()); // moved this up a few lines
  app.use(passport.initialize());
  app.use(locomotive.session());
  app.use(passport.session());
  app.use(app.router);
  app.dynamicHelpers({ messages: require('express-messages') });
});
于 2014-05-28T13:43:13.870 回答
0

请参阅临时数据示例https://github.com/MKxDev/TempData

var tempData = require('tempdata');
    var app = express();

    app.configure(function() {
        ...

        // This has to appear BEFORE the router
        app.use(express.cookieParser());
        app.use(express.session({ secret: 'your_super_secret_session_key' })); // please change this!
        app.use(tempData);

        ...
    });

    ...

    // Routes
    app.get('/', function(req, res) {
        // Retrieve tempData value here. It won't exist unless the request
        // was redirected
        var tempVal = JSON.stringify(req.tempData.get('test_val'));

        res.render('index', { title: 'Express', temp: tempVal });
    });

    app.post('/', function(req, res) {
      // Set tempData value here
        req.tempData.set('test_val', { x: 'Hello World!' });

        res.redirect('/');
    });
于 2014-05-28T13:21:33.393 回答