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里,所以需要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 }));
最后:同是新手,不对的地方望能指正。