express4.x connect-flash出错
 发布于 11 年前  作者 cjingzm  11336 次预览  最后一次回复是 9 年前  来自 问答 

var flash = require(‘connect-flash’); app.use(flash());

引用时出现下面问题。新手求指点。 req.flash() requires sessions

undefined

Error: req.flash() requires sessions at Error (<anonymous>) at IncomingMessage._flash [as flash] (D:\MyDevelop\express_test\blogs\node_modules\connect-flash\lib\flash.js:60:41) at D:\MyDevelop\express_test\blogs\routes\index.js:23:9 at Layer.handle [as handle_request] (D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\layer.js:76:5) at next (D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\route.js:100:13) at Route.dispatch (D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\route.js:81:3) at Layer.handle [as handle_request] (D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\layer.js:76:5) at D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\index.js:234:24 at Function.proto.process_params (D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\index.js:312:12) at D:\MyDevelop\express_test\blogs\node_modules\express\lib\router\index.js:228:12

7 回复
alsotang

在 flash 中间件之前挂个 session 中间件:https://github.com/expressjs/session

LeChauvet

楼主你好,我也遇上了这个问题,问一下你解决了吗?如何解决?

Tei320

flash里的信息需要存储在session里,所以需要session(express4.x分离了中间件,以前是express-session)这个中间件 QQ图片20150913115033.png 上图为加入flash前后的数据库 加入以下代码就好啦,我用的是express创建的项目。数据库用的是mongo var session = require(‘express-session’); var MongoStore = require(‘connect-mongo’)(session); app.use(session({ secret: ‘keyboard cat’, //saveUninitialized: false, // don’t create session until something stored //resave: false, //don’t save session if unmodified store: new MongoStore({ url: ‘mongodb://localhost/session’, autoRemove: ‘interval’, autoRemoveInterval: 10 // In minutes. Default }), cookie: { maxAge: 900000 } // expire session in 15 min or 900 seconds }));

最后:同是新手,不对的地方望能指正。

1340641314

需要到这种的,一般都可以使用ajax交换比较好

i5ting

@1340641314 一看就是没用过flash的,一般一次的提醒都可以使用flash来做,再刷新的时候就没有提示了

1340641314

@i5ting 比如登录注册之类的,我都不用flash做提示

zhaoxixiong

这里有一个关于 connect-flash 简单的例子,你可以看看,应该可以解决你的疑惑!《connect-flash 用法详解