问题标签 [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.
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(): {}
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
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相同的方式设置:
有人可以解释一下吗?
node.js - 如何在 connect-flash 消息中包含变量以创建动态链接
我正在努力创建一个动态链接 ( include variable :id
) 到error
flash
消息中。
该链接应重定向到现有条目。
JS
EJS
javascript - req.flash() 在 app.js 中返回一个空对象,但在控制器方法中工作正常
所以我在我的控制器方法中设置我的闪存消息,如下所示:req.flash('info', 'flash is working')
然后我console.log(req.flash())
在控制器中查看它是否有效。然后在我的 app.js 文件中,我只需将它传递给 res.locals 以便我可以在我的模板中使用它,但是我收到了一个空对象,所以我在中间件中进行了控制台以分配 res.locals 并且它是那里也空着。为什么会这样?
顺便说一句,我知道第一个请求应该返回空 flash 对象,但第二个请求也返回空
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.
javascript - Express connect-flash 仅在刷新后才显示不在同一页面上。如何解决这个问题?
以下是注册路线
以下是本地护照
我将 flash-connect 放入寄存器路由 req.flash("error", error.message); 当我注册时,它会在另一次刷新后显示消息,而不是在同一页面上
node.js - 节点 JS(Express)连接闪存不适用于重定向操作
我想知道为什么我的连接闪存不工作。我知道 connect-flash 尝试将消息保存到会话中。所以我这样声明会话:
然后我设置了 flash :
问题是,当我使用 connect-flash 时,它在重定向操作后并没有显示刚刚设置的消息。
我在“/mail/send”路由器上看不到任何消息。
控制台消息正在打印空值,上一步似乎没有正常发送值。当然,我在 ejs 页面上没有看到任何“flash_var”。
我的代码有什么问题?
node.js - 当电子邮件存在时显示来自 Facebook Strategy 的 connect-flash 消息
当我测试以查看与护照 facebook 策略关联的电子邮件地址是否已存在于数据库中时,我试图显示一条错误消息。
这是我的代码:
如果电子邮件已经存在,如何在登录页面上向用户显示错误消息?
node.js - 获取 connect-flash 包以呈现 flash 消息
我正在通过练习学习 expressjs 和 mongodb。我想在添加、更新或删除新项目时呈现 Flash 消息。尽管我也没有收到任何错误,但它不起作用,因此很难确定确切的原因。下面是我的主要代码:
'routes.js' 代码