错误:req.flash() 需要会话

     2023-03-10     73

关键词:

【中文标题】错误:req.flash() 需要会话【英文标题】:Error: req.flash() requires sessions 【发布时间】:2015-08-14 07:29:05 【问题描述】:

我是 node 新手,我很确定我已经设置了中间件和 express 以使用 flash 消息传递,但是我仍然收到错误:

Error: req.flash() requires sessions

设置

//express.js
     var flash = require('connect-flash')

     module.exports = function (app, config, passport) 
         app.use(flash());
     ;

//route js
     exports.loginGet = function (req, res) 
       res.render('users/login', 
         title: 'Login',
         message: req.flash('error') //error in question
       );
     ;

我还能做些什么来确保我已正确设置所有内容并使其正常工作?

【问题讨论】:

github.com/jaredhanson/connect-flash#express-3x。您需要使用会话中间件,因此错误消息req.flash() requires sessions 【参考方案1】:

来自readme(强调我的):

Flash 消息存储在会话中。 首先,通过启用 cookieParser 和会话中间件,像往常一样设置会话。 然后,使用 connect-flash 提供的 flash 中间件。

express-sessions 与 express 4 一起使用,不再需要 cookieParser

var session = require('express-session');

//...


app.use(session( cookie:  maxAge: 60000 , 
                  secret: 'woot',
                  resave: false, 
                  saveUninitialized: false));

【讨论】:

没有使用 express v2 和 3 中的 express.XXX?我认为他们从 express 中删除了这些功能并使其成为单个中间件? 我的错 - 你是对的。我已经相应地更新了我的答案。【参考方案2】:

请检查 mongodb 连接。可能会出现像“mongoError:拓扑已破坏”这样的 mongo 错误。 要解决此问题,请查看here

【讨论】:

这帮助我修复了由于使用 connect-redis 会话配置错误(错误主机名)导致的相同错误消息【参考方案3】:

就我而言,问题是 Redis 没有在听。我通过启用logErrors 属性发现了这一点:

new RedisStore(
  host: 'localhost',
  port: '6379',
  logErrors: true,
);

这导致了这样的消息:

Warning: connect-redis reported a client error: Error: Redis connection to localhost:6379 failed - connect ECONNREFUSED 127.0.0.1:6379

【讨论】:

【参考方案4】:

我遇到了这些问题,我通过尊重级联来解决它们

app.use(passport.initialize());
app.use(passport.session());
//SESSION FLASH
app.use(flash());

【讨论】:

如何在express4.0中发送flash消息?(代码片段)

...试使用已经在数据库中的电子邮件注册,我想向他们显示错误消息。我试图在html端使用此代码执行此操作:<%if(message.length>0)%><divclass="alertalert-danger"><%=message%></div><%%>并在我的路线中这样做:router.get('/sig... 查看详情

Express 3.0 req.flash?

】Express3.0req.flash?【英文标题】:Express3.0req.flash?【发布时间】:2012-04-2813:57:08【问题描述】:--编辑--我为此编写了一些中间件:https://npmjs.org/package/flashify所以自Express3.0发布以来,更改已删除req.flash()https://github.com/visionmedia/exp... 查看详情

如何将 req.flash() 与 EJS 一起使用?

】如何将req.flash()与EJS一起使用?【英文标题】:HowdoIusereq.flash()withEJS?【发布时间】:2012-06-2700:38:00【问题描述】:我希望能够使用Express和EJS向客户端发送消息。我已经翻遍了,但仍然找不到示例或教程。有人能告诉我最简单... 查看详情

NodeJS:Express 3.0 with connect-flash(按照护照本地策略中的建议),仍然发现 req.flash 异常

】NodeJS:Express3.0withconnect-flash(按照护照本地策略中的建议),仍然发现req.flash异常【英文标题】:NodeJS:Express3.0withconnect-flash(asadvisedinthepassportlocalstrategy),stillfindingexceptionforreq.flash【发布时间】:2012-10-1914:14:09【问题描述】:我... 查看详情

无法启动 Appium 会话,错误是:错误:启动应用程序需要参数“appPackage”

】无法启动Appium会话,错误是:错误:启动应用程序需要参数“appPackage”【英文标题】:FailedtostartanAppiumsession,errwas:Error:Parameter\'appPackage\'isrequiredforlaunchingapplication【发布时间】:2014-04-2718:13:36【问题描述】:我在ubuntu(13.10)上... 查看详情

使用会话在登录表单上显示错误的问题

】使用会话在登录表单上显示错误的问题【英文标题】:Problemwithdisplayingerrorsonloginformusingsessions【发布时间】:2020-11-2718:54:27【问题描述】:我在Laravel中有登录表单,但我无法在我的电子邮件和密码字段中显示错误。我制作了... 查看详情

Vaadin 中的休眠会话错误

】Vaadin中的休眠会话错误【英文标题】:HibernatesessionerrorinVaadin【发布时间】:2014-10-1614:00:39【问题描述】:我正在使用JPAContainer和hibernate4.3开发Vaadin网络应用程序。我按照link的说明成功实现了EntityManager-per-Request模式。这意味... 查看详情

无状态会话 api 请求

...个使用JWT进行身份验证的简单应用程序。但是我不断收到错误消息,说我GET需要回调函数。我会期待什么?我应该取回当前用户的数据。我实际上得到了什么?错误:Route.get()需要一个回调函数但得到了一个[objectObject]路线:const... 查看详情

PHP - 您是不是需要再次设置会话数据以重置生命周期?

...只需要开始一个新会话?我的任务是修复导致会话过期的错误,即使session.gc_maxlifetime设置为8小时(它确实已设置,我已 查看详情

在会话中存储错误消息并显示在另一个页面上

】在会话中存储错误消息并显示在另一个页面上【英文标题】:storeerrormessageinsessionanddisplayonanotherpage【发布时间】:2015-03-3020:28:58【问题描述】:我目前手头有一个场景。我有2页index.phpandcode.php.用户首先进入index.php页面,然后... 查看详情

如何在 symfony 2/3 中关闭会话?

...的rest(stateless)api中使用会话,如果我关闭它们,就会导致错误。【问题讨论】:错误是什么?我大约一年前使用symfony2.7完成了此操作,对此我不记得是什么样的错误消息。用户未发送PHP_SESSIONcookie时导致的 查看详情

带有 2 个数据库的休眠随机“会话已关闭错误”

】带有2个数据库的休眠随机“会话已关闭错误”【英文标题】:Hibernaterandom"Sessionisclosederror"with2databases【发布时间】:2018-07-0213:46:55【问题描述】:我需要在单个DAO类中使用2个不同的数据库。其中一个数据库是读/写的... 查看详情

如何在经过身份验证的会话超时时处理 Silverlight 中的 WCF 服务错误

...何在经过身份验证的会话超时时处理Silverlight中的WCF服务错误【英文标题】:HowtoHandleWCFServiceErrorinSilverlightWhenAuthenticatedSessionTimesOut【发布时间】:2011-01-1519:00:29【问题描述】:我有一个正在Silverlight中访问的WCF服务。Silverlight应... 查看详情

为啥我们需要开始会话,会话基本上是啥? [复制]

】为啥我们需要开始会话,会话基本上是啥?[复制]【英文标题】:Whydoweneedtostartsessionandwhatissessionbasically?[duplicate]为什么我们需要开始会话,会话基本上是什么?[复制]【发布时间】:2013-11-2919:30:49【问题描述】:为什么我需要... 查看详情

Impala JDBC 连接:错误设置/关闭会话:打开会话错误

】ImpalaJDBC连接:错误设置/关闭会话:打开会话错误【英文标题】:ImpalaJDBCconnection:Errorsetting/closingsession:OpenSessionError【发布时间】:2016-08-0418:46:04【问题描述】:如果我有以下类型的impala连接,我还能使用SquirreLSQL:self.impala_con... 查看详情

31例程启动后需要会话进行保持吗

31例程启动后,是不需要会话进行保持保存的。参考技术A负载均衡主要分为硬件负载均衡F5,CITRIX等,nginx负载均衡,apache负载均衡,无论是硬件负载均衡或者是软件负载均衡都会有一个会话保持的选项,在需要进行会话保持的... 查看详情

“xxxDAOImpl”中的字段会话需要一个“org.hibernate.SessionFactory”类型的 bean,但无法找到

...【发布时间】:2017-03-3002:48:00【问题描述】:我收到以下错误(我相信是Dao层-但我 查看详情

序列化 ASPX 页面?

...储在会话中的所有类都可序列化。但是,我不断收到以下错误:无法序列化会话状态。在StateServer和SQLServer模式下,ASP.NET将序列化会话状态对象,因此不允许使用不可 查看详情