0

我正在使用带有 express 的 connect-flash 来处理 flash 消息,但是当我读取该属性时,这些消息会被删除,例如:

定义闪存消息:

req.flash("myMessage", "Hey!");

阅读留言:

console.log(req.flash("myMessage")); // Hey!
console.log(req.flash("myMessage")); // undefined

数据在第一次读取时被删除,这是一个问题,因为我需要在中间件中读取 req.flash 的数据以过滤 http 请求,然后在控制器中(在另一个文件中)我需要读取相同的req.flash 数据,但我不能,因为在读取中间件时被擦除了。

在这种情况下我能做什么?

4

1 回答 1

0

消息存储在req.session.flash内部,请参阅源代码

这意味着您可以通过直接索引来获取消息,req.session.flash["myMessage"]而无需清除它。

从技术上讲,这是req.flash()您不应该依赖的实现细节,但我认为如果您将版本固定connect-flash在您的需求中,它就足够安全了。

于 2020-10-29T15:59:35.583 回答