问题标签 [connect-flash]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - req.flash() 需要会话但会话存在
堆栈:Mongo/Redis、Express 和 Node
我的会话设置与大多数其他 Stack Overflow 帖子指向的一样。我使用 Redis 作为我的会话存储。这是我的会话设置:
这出现app.use(flash());
在我的 app.js 文件中。
我唯一能想到的是我需要在我的路由文件中设置会话。但是多次设置会话似乎是错误的。我确实需要我在下面设置会话和闪存的路线。
知道这里发生了什么吗?
错误信息:
堆栈跟踪指向 app.js 的第 55 行,即res.locals.error = req.flash("error");
那是在我打电话给我的路线之前,但在我设置我的会话之后。如果我将其注释掉,则它指向调用的路线。在这种情况下,索引路由。
如果我将 res.render 更改为 res.send,那么它会发送没有错误的消息。
node.js - passport.authenticate() 不显示闪存消息
再会,
我正在关注 [this]( https://www.youtube.com/watch?v=iX8UhDOmkPE&t=682s "登录和验证应用程序") 教程。一个区别是我使用的是 mysql 而不是 mongoose。
尝试登录时,我想闪烁消息。例如“用户名未知”。
不幸的是,这并没有发生,模块护照中硬编码的“凭证丢失”消息也不起作用。
server.js
登录模块
我的客户端正在使用 .handlebars 文件:
[编辑] 经过一天的反复试验,我终于找到了一种闪现我的信息的方法:)
通过添加以下内容在 Localstrategy 中传递 req:
这允许 req.flash('error_msg', 'Username or email not known'); 1
因为在 server.js 我有:
消息“用户名或电子邮件未知”在浏览器中显示客户端
javascript - Javascript - 无法在 AJAX 调用上显示 Flash 消息
我正在开发一个应用程序,其中有一个可搜索的参考数据库,并且有一个允许用户编辑数据库的管理应用程序。面向公众的一面使用 Knockout JS 通过 RESTful API 与服务器通信。管理应用程序使用 express。页面是使用 Handlebars 从模板呈现的。编辑视图使用与公共视图相同的呈现代码。
我正在使用 connect-flash 向编辑器发送操作结果消息。当表单提交到页面(用于添加新引用)时,会按预期显示闪烁消息,但是,对于表格视图中每个项目上可用的命令(如删除特定引用),我使用来自视图模型中定义的函数的 ajax 调用。调用正确执行并执行了操作,但永远不会向用户显示 Flash 消息。我有一个自定义中间件,它将 Flash 消息收集到模板的替换对象中。当我记录发送了哪些消息时,我从来没有看到删除调用产生的消息,所以我不仅仅是在额外刷新时丢失了它。
这是我正在使用的请求处理程序:
我已经尝试将重定向更改为 278 以防止浏览器透明地处理重定向,然后在 ajax 调用的成功函数中处理它,按照How to manage a redirect request after a jQuery Ajax call,但这没有帮助.
这是定义视图模型的客户端javascript:
我用来收集闪存消息的中间件:
node.js - Nodejs 连接闪存 | Passportjs 传递不同的消息类型而不是“错误”
我想传递不同的消息类型,因为我使用 bootstrap 4x 它没有警报警报错误。你会如何改变它? 护照.js
node.js - 如何将 req.flash() 与 nunjucks 一起使用?
我正在使用 connect-flash 来传递 flash 消息。在我的控制器中,我使用以下代码if (!req.user) {
req.flash("error_msg", "User not found !!");
return res.redirect(307, '/');
}
在我看来,我尝试过
{{ 错误信息 }}
{{ req.flash('error_message') }}
{{ req.flash.get('error_message') }}
但这些都不起作用。当前解析 nunjucks 中的 flash 消息的语法是什么?
node.js - req.flash() 数据即使在使用 connect-flash 刷新页面后仍然存在
我正在使用 connect-flash 在我的sailjs 应用程序中显示一条消息。即使刷新页面后,Flash 消息仍然存在。我尝试了这个解决方案
我创建了一个策略来在任何请求之前清除req.session.flash
数组,但这样做不会显示任何时间的闪存消息。仅显示一次 Flash 消息的正确方法是什么?
编辑 :-
我的政策中的代码:-
policy.js 包含
'*' : 'removeFlash'
我的控制器包含
req.flash("error_msg", "Incorrect username or password.");
return res.redirect("/login");
node.js - 在呈现页面之前不保存闪存消息(节点)
作为 express 应用程序中通用 get 路由的一部分,我想发送两条带有 express-session 和 connect-flash 的 flash 消息。除了 req.flash 在页面呈现之前不保存之外,这一切都有效。因此,在用户再次加载另一个页面或相同页面之前,不会显示 Flash 消息。
路由中最后一个函数的代码:
这是其中一个 Flash 消息模板 (ejs) 的代码:
我曾尝试在 req.flash 之后使用 .exec() 使渲染语句在完成时运行,但这不起作用,我还尝试在回调中使用渲染语句 req.session.save() 但这也失败了.
去掉其中一个 req.flash 语句,或者只传递一个字符串参数而不是两个数组,都不能解决这个问题。
node.js - 如何修复 nodejs 不显示 flash 消息
我正在使用 express 并且我正在创建一个连接到 mongo 数据库的注册页面,我做到了,当用户键入与另一个用户相同的电子邮件时,它会使用 connect-flash “电子邮件已在使用中”闪烁一条消息,但它没有显示在我的网站上,即使我放了另一条消息“无效的电子邮件”,它仍然有效。
index.js 代码:
护照.js代码: