NodeJS:使用connect-flash的Express 3.0(根据护照本地策略中的build议),仍然发现req.flash的exception
我是NodeJS的新手,并试图通过Express3.0构build一个应用程序,包括护照本地策略的authentication目的。 但是下面的例外(关于req.flash)阻碍了我的进步。
以下行中发生exception。 res.render('login',{user:req.user,message:req.flash('error')});
performance 500 TypeError:对象#没有方法“闪光灯” 在/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/app.js:115:54 在callback(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:162:37) at param(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:136:11) (/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:143:5) 在Router._dispatch(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:171:5) 在Object.router(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/lib/router/index.js:33:10) (/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/proto.js:190:15) 在store.get.next(/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/middleware/session.js:310:9) 在/Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/middleware/session.js:333:9 at /Users/vivekanandan/Source/Git/ExpressApp/CosmicEnergyCoupled/node_modules/express/node_modules/connect/lib/middleware/session/memory.js:52:9
我已经安装了connect-flash来恢复作者(passport-local-strategy)build议的弃用req.flash方法。 请find安装在应用程序中的npm包。
├──connect-flash@0.1.0 ├──ejs@0.8.3 ├──ejs-locals@0.2.5 ├─┬express@3.0.0 │├──commander@0.6.1 │├─┬connect@2.6.0 ││├──bytes@0.1.0 ││├──formidable@1.0.11 ││├──pause@0.0.1 ││├──qs@0.5.1 ││└─┬send@0.0.4 ││└──mime@1.2.6 │├──cookie@0.0.4 │├──crc@0.2.0 │├──debug@0.7.0 │├──fresh@0.1.0 │├──methods@0.0.1 │├──mkdirp@0.3.3 │├──range-parser@0.0.4 │└─┬send@0.1.0 │└──mime@1.2.6 ├─┬passport@0.1.12 │└──pkginfo@0.2.3 ├─┬passport-local@0.1.6 │├──passport@0.1.12 │└──pkginfo@0.2.3 ├─┬socket.io@0.9.10 │├──policyfile@0.0.4 │├──redis@0.7.2 │└─┬socket.io-client@0.9.10 │├─┬active-x-obfuscator@0.0.1 ││└──zeparser@0.0.5 │├──uglify-js@1.2.5 │├─┬ws@0.4.22 ││├──commander@0.6.1 ││├──options@0.0.3 ││└──tinycolor@0.0.1 │└──xmlhttprequest@1.4.2 └─┬stylus@0.30.1 ├──cssom@0.2.5 ├──debug@0.7.0 └──mkdirp@0.3.4
尝试添加到您的主要app.configure方法
app.use(flash());
npm install connect-flash --save var flash = require('connect-flash') app.use(flash());
我想你错了。 您只需在res.redirect之前调用types和消息的req.flash()
req.flash('info', 'Welcome to the site, a welcome email has been sent to you.'); res.redirect('/');