我想在用户登录失败后显示提示信息,但我无法在Jade视图中显示变量。
我有一些片段,我知道我必须在我的app.configure()中使用它:
app.use (req, res, next) ->
res.locals.session = req.session
在用户输入错误的密码后,我将设置闪存消息是什么:
exports.postSession = (req, res) ->
users = require '../DB/users'
users.authenticate(req.body.login, req.body.password, (user) ->
if(user)
req.session.user = user
res.redirect(req.body.redirect || '/')
else
req.session.flash = 'Authentication Failure!'
res.render('sessions/new', {title:'New', redirect: req.body.redirect })
)
我不知道如何访问res.locals.session
我的Jade文件。我怀疑我是否将所有设置正确。这个问题很像这样:将Express.js2迁移到3,特别是将app.dynamicHelpers()迁移到app.locals.use?但我仍然无法正常工作。如果有人可以向我展示一个简单的示例,说明如何在res.local中设置值并在视图中访问它们,将不胜感激。
ps我确实了解connect-flash,但是我需要了解如何使视图中的内容可用。
这是我的应用程序:
app.configure(() ->
app.set('views', __dirname + '/views')
app.set('view engine', 'jade')
app.use(express.bodyParser())
app.engine('.jade', require('jade').__express)
app.use(express.methodOverride())
app.use(express.cookieParser())
app.use(express.session({ store: new express.session.MemoryStore({reapInterval: 50000 * 10}), secret: 'chubby bunny' }))
app.use(express.static(__dirname + '/public'))
app.use((req, res, next) ->
res.locals.session = req.session
next()
)
app.use(app.router)
)
只是给每个有同样问题并得到改变的印象的人一个简短的摘要res.redirect
。
将app.use
中间件放在 前面 非常重要app.router
。请参阅《快报》作者TJ Holowaychuck的评论
这是使用Express v3.0.0rc4的全新安装的示例
app.js:
app.use(function(req, res, next){
res.locals.variable = "some content";
next();
})
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
index.jade:
extends layout
block content
h1= title
p Welcome to #{title}
p= variable
我将页码信息从主报表传递到页脚子报表。在主报表中,我已经声明了子报表参数pageTot和pageNum。它们通过向导映射到主报告$V{PAGE _ COUNT}和$V{PAGE _ NUMBER}中的参数。在子报表中,我声明了两个参数pageNum和pageTot。在它们的参数属性中,我取消了将use作为提示,并将它们都设置为java.lang.integer类型。然后,我替换了文本字段的文本字段
问题内容: 我在未传递到javascript文件的玉模板文件(index.jade)中声明的变量(config)遇到问题,这使我的javascript崩溃了。这是文件(views / index.jade): 这是我的app.js(服务器端)的一部分: 这是我的javascript文件崩溃的一部分(public / javascripts / app.js): 我正在本地主机(我自己的机器)上的开
问题内容: 我正在尝试将简单的URL传递给play框架应用程序中的视图,但是当以字符串形式传递时,URL中的更改为导致URL不起作用的位置。 如果我将参数更改为Html,即更改为,则在尝试将url作为字符串传递给method 时出现错误。 如何将url转换为HTML并以此传递? 问题答案: 为了防止动态内容在视图上发生默认的转义,您需要使用with 函数包装: 视图: 控制器: 有关更多信息,请参
问题内容: 我正在尝试创建以start_date和end_date为参数的 JR 报告。 查询: 代码: 我们可以将两个参数传递到表中的同一列吗?例如: 问题答案: 您的代码是错误的。 您应该传递如下参数: 您无需添加 到参数名称。 JasperReports 分发包中有很多示例。 您可以查看此样本以获取更多详细信息。
问题内容: 简单的问题。 如何将变量从URL传递到视图?我正在跟踪Date示例。 我的观点需要争论: 我的url.py有这个” 我知道我需要传递另一个参数,但是我不知道如何从URL字符串中获取数字(即“ time / plus / 4 /”。类似这样的东西? 问题答案: 您可以在正则表达式中使用命名组
问题内容: 我想在Laravel 5应用程序的所有视图中都可以访问一些默认数据。 我尝试搜索它,但仅找到Laravel 4的结果。我在这里阅读了文档“使用所有视图共享数据” ,但我不知道该怎么做。以下代码应放在哪里? 谢谢你的帮助。 问题答案: 这个目标可以通过不同的方法来实现, 1.使用BaseController 我喜欢设置的方式,我制作了一个扩展Laravel自己的类,并在那里设置了各种全局