问题标签 [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.

0 投票
1 回答
1059 浏览

javascript - EJS 和 connect-flash 无法按预期工作

我正在尝试使用 EJS 和 connect-flash 以及 express 和 express-session 将我的大脑包裹在模板和 flash 消息上,但我似乎无法让它以我想要或预期的方式工作。

当我定义一个 flash 消息时,我 console.log 它,我可以很好地看到它。但是当我尝试在我的模板中打印它时,它req.flash是一个空对象 [object Object]。

登录尝试失败后,console.log 中的闪烁消息:

flash(): { error: [ 'Brugernavn eller adgangskode er ikke korrekt.' ] }

但是当我尝试flash在我的 ejs 模板中循环使用类似的东西时

以上返回错误

服务器.js

前端路由器.js

(注意 .post 和 .get '/login' 的路由)

登录.ejs

编辑:

我现在在发送端和接收端都使用了 console.log()'ed req.flash():

接收端的结果是

flash(): {}

0 投票
0 回答
433 浏览

node.js - NodeJS、docker、nginx - req.flash() 需要会话

我在 nginx 后面的 Node 应用程序有问题。

首先,我将解释基础架构:

NGINX => (prox_pass) => Docker (向主机公开端口) => Node APP

应用程序运行良好,但连接闪存有问题(我将它与 PassportJS 一起使用)。我有错误:

req.flash() 需要会话

在我的本地计算机上我没有任何问题(我作为生产环境运行)。所以问题可能出在nginx方面。

我发现 cookie 会话没有存储在浏览器上,所以 req.flash() 需要会话。我不使用 session.destroy,我将使用会话配置放在护照会话和闪存之前。

这是 server.js 代码的一部分(我尝试了不同的配置:secrets、resave、saveUninitialized ;不同的顺序;如果 NODE_ENV_PRODUCTION - 不起作用,我也注释掉了):

和 NGINX 配置:

在日志中我可以看到:

{"message":"req.flash() requires sessions","stack":"Error: req.flash() requires sessions\n at IncomingMessage._flash [as flash] (/var/www/application/node_modules/connect -flash/lib/flash.js:60:41)\n 在 ctrl.login (/var/www/application/src/modules/user/server/controllers/login.js:17:16)\n 在层。处理 [as handle_request] (/var/www/application/node_modules/express/lib/router/layer.js:95:5)\n 在下一个 (/var/www/application/node_modules/express/lib/router/route .js:131:13)\n 在 Route.dispatch (/var/www/application/node_modules/express/lib/router/route.js:112:3)\n 在 Layer.handle [as handle_request] (/var /www/application/node_modules/express/lib/router/layer.js:95:5)\n 在 /var/www/application/node_modules/express/lib/router/index.js:277:22\n 在函数.process_params (/var/www/application/node_modules/express/lib/router/index.js:330:12)\n 在下一个 (/var/www/application/node_modules/express/lib/router/index.js:271 :10)\n 在 Function.handle (/var/www/application/node_modules/express/lib/router/index.js:176:3)\n 在路由器 (/var/www/application/node_modules/express/lib /router/index.js:46:12)\n 在 Layer.handle [as handle_request] (/var/www/application/node_modules/express/lib/router/layer.js:95:5)\n 在 trim_prefix ( /var/www/application/node_modules/express/lib/router/index.js:312:13)\n 在 /var/www/application/node_modules/express/lib/router/index.js:280:7\n在 Function.process_params (/var/www/application/node_modules/express/lib/router/index.js:330:12)\n 在下一个 (/var/www/application/node_modules/express/lib/router/index. js:271:10)","级别":"错误",“时间戳”:“2017-08-01T21:17:49.367Z”}

节点版本为 8.2.1

Nginx 版本是 1.6.2

解决

我找到了解决方案 - 问题出在连接上。我使用 redis 作为存储,我连接到 localhost 而不是链接的 redis

0 投票
1 回答
8828 浏览

node.js - flash、connect-flash 和 express-flash 的区别

我仍然对 flash、connect-flash 和 express-flash 之间到底有什么区别感到困惑。

安装:

  • 闪光npm install flash

  • 快闪npm install express-flash

  • 连接闪存npm install connect-flash

用法:

闪光

连接闪存

express-flash它甚至要求使用与connect-flash相同的方式设置:

有人可以解释一下吗?

0 投票
0 回答
186 浏览

node.js - 如何在 connect-flash 消息中包含变量以创建动态链接

我正在努力创建一个动态链接 ( include variable :id) 到error flash消息中。

该链接应重定向到现有条目。

JS

EJS

0 投票
1 回答
516 浏览

javascript - req.flash() 在 app.js 中返回一个空对象,但在控制器方法中工作正常

所以我在我的控制器方法中设置我的闪存消息,如下所示:req.flash('info', 'flash is working')然后我console.log(req.flash())在控制器中查看它是否有效。然后在我的 app.js 文件中,我只需将它传递给 res.locals 以便我可以在我的模板中使用它,但是我收到了一个空对象,所以我在中间件中进行了控制台以分配 res.locals 并且它是那里也空着。为什么会这样?

顺便说一句,我知道第一个请求应该返回空 flash 对象,但第二个请求也返回空

0 投票
1 回答
4708 浏览

node.js - NodeJS Express App - Showing flash messages via Handlebars

I'm hoping someone can help with showing flash messages in Express via a Handlebars view (which uses the bootstrap markup).

In app.js I have the below modules and middleware to try and get flashes working

and a route router.post('/store/add', storeController.createStore);

which has the controller function

when I create a new store and am redirected to homepage the console.log shows the correct value my-messages { error: [ 'leave a review' ] } but I cannot get it into the view

my homepage ('/') view is

but nothing shows up. I've read quite a few similar questions on SO, but can't seem to get this right.

Any help much appreciated.

0 投票
1 回答
1226 浏览

javascript - Express connect-flash 仅在刷新后才显示不在同一页面上。如何解决这个问题?

以下是注册路线

以下是本地护照

我将 flash-connect 放入寄存器路由 req.flash("error", error.message); 当我注册时,它会在另一次刷新后显示消息,而不是在同一页面上

0 投票
1 回答
629 浏览

node.js - 节点 JS(Express)连接闪存不适用于重定向操作

我想知道为什么我的连接闪存不工作。我知道 connect-flash 尝试将消息保存到会话中。所以我这样声明会话:

然后我设置了 flash :

问题是,当我使用 connect-flash 时,它在重定向操作后并没有显示刚刚设置的消息。

我在“/mail/send”路由器上看不到任何消息。

控制台消息正在打印空值,上一步似乎没有正常发送值。当然,我在 ejs 页面上没有看到任何“flash_var”。

我的代码有什么问题?

0 投票
1 回答
89 浏览

node.js - 当电子邮件存在时显示来自 Facebook Strategy 的 connect-flash 消息

当我测试以查看与护照 facebook 策略关联的电子邮件地址是否已存在于数据库中时,我试图显示一条错误消息。

这是我的代码:

如果电子邮件已经存在,如何在登录页面上向用户显示错误消息?

0 投票
1 回答
1806 浏览

node.js - 获取 connect-flash 包以呈现 flash 消息

我正在通过练习学习 expressjs 和 mongodb。我想在添加、更新或删除新项目时呈现 Flash 消息。尽管我也没有收到任何错误,但它不起作用,因此很难确定确切的原因。下面是我的主要代码:

'routes.js' 代码

这是我的回购https://github.com/isogunro/express-exercise