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
在 flash 中间件之前挂个 session 中间件:https://github.com/expressjs/session
楼主你好,我也遇上了这个问题,问一下你解决了吗?如何解决?
flash里的信息需要存储在session里,所以需要session(express4.x分离了中间件,以前是express-session)这个中间件 上图为加入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 }));
最后:同是新手,不对的地方望能指正。
需要到这种的,一般都可以使用ajax交换比较好
@1340641314 一看就是没用过flash的,一般一次的提醒都可以使用flash来做,再刷新的时候就没有提示了
@i5ting 比如登录注册之类的,我都不用flash做提示
这里有一个关于 connect-flash 简单的例子,你可以看看,应该可以解决你的疑惑!《connect-flash 用法详解》