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('/');