可以't让connect-flash在重定向时使用express.js
Can't get connect-flash to work with express.js on redirect
好的,由于某种原因,当我res.render()
时,会话闪存可以工作,但当我尝试设置会话闪存然后重定向时,它不会显示。以下是else
子句中的联系方法中的问题)。。。
这是重定向期间记录到控制台的内容:
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{ info: [ 'Thanks we will return your message soon' ] }
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
{}
正如你所看到的,消息肯定在那里,但看起来它被一个空对象取代了。
这是我的代码:
app.js
var flash = require('connect-flash');
// Grab sessions
var sessionFlash = function(req, res, next) {
res.locals.messages = req.flash();
console.log(res.locals.messages);
next();
}
app.configure(function() {
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(viewHelpers());
app.use(express.bodyParser({ uploadDir : './' }));
app.use(expressValidator);
app.use(express.methodOverride());
app.use(express.cookieParser('keyboard cat'));
app.use(express.session({
secret: config.secret,
cookie: {
maxAge: 365 * 24 * 60 * 60 * 1000
},
store: new MongoStore(config.db)
}));
app.use(flash());
app.use(sessionFlash);
app.use(express.static(__dirname + '/public'));
app.use(app.router);
});
views/layout.jade
- if (typeof message !== 'undefined')
=message
controllers/index.js
function controllers(params) {
controllers.contact = function(req, res) {
if (errors) {
// This works as intended
req.flash('info', 'Please fix the errors below.');
res.render('contact', {
title : 'Contact -',
message: req.flash('info'),
errors: errors,
params: params
});
return;
} else {
// This doesn't work
req.flash('info', 'Thanks we will return your message soon');
res.redirect('/');
}
};
return controllers
}
module.exports = controllers;
好吧,您正在重定向到'/',而服务器没有响应。
您的app.js 中没有app.get('/', function(req, res){...});
Flash消息是在来自同一客户端的两个请求之间的持续时间内存储在服务器上的消息,因此仅在下一个请求中可用。闪光灯不显示,因为您的res.redirect('/');
什么都不做。
相关文章:
- 角度 JS + 重定向不起作用
- node.js重定向无法添加用户名
- 将重定向URL链接添加到JS函数
- 节点JS重定向循环
- 查看完某个页面后,在重定向的页面上弹出js模式
- jQuery/JS获胜't在表单验证后重定向
- 重定向不带哈希的URL-Ember.JS
- 重定向到Angular JS中的另一个HTML页面
- 如何在使用Passport.js和Sails.js注册后重定向到特定位置
- 在angular.js中定义动态URL的重定向
- 在php中htaccess重定向url后,无法加载css和js
- Meteor JS Router.go重定向到同一页面
- Hapi-js重定向到另一个带有额外请求数据的路由
- 使用来自不同页面的cookie创建URL,并使用JS重定向
- Backbone.js路由器和Internet Explorer重定向问题
- Ember.js:如果控制器中满足某些条件,则在路由器中重定向
- 意思是.js - 登录后重定向用户 - 在本地工作,但在部署时不起作用
- 带有post值的JS jQuery重定向,不带<表单>
- 如何使用基于引用的Javascript重定向js文件
- 多站点重定向JS