1. ホーム
  2. node.js

[解決済み] エラー: req.flash() はセッションを必要とします。

2022-02-17 13:41:57

質問

私はnodeの初心者で、フラッシュメッセージングを使用するためにミドルウェアとエクスプレスを設定したはずなのですが、まだエラーが発生します。

Error: req.flash() requires sessions

セットアップ

//express.js
     var flash = require('connect-flash')

     module.exports = function (app, config, passport) {
         app.use(flash());
     };

//route js
     exports.loginGet = function (req, res) {
       res.render('users/login', {
         title: 'Login',
         message: req.flash('error') //error in question
       });
     };

すべて正しく設定し、動作させるためには、他に何をすればよいのでしょうか?

どのように解決するのですか?

からの 読書会 (強調)。

<ブロッククオート

フラッシュメッセージはセッションに保存されます。 まず、通常通りCookieParserとセッションミドルウェアを有効にして、セッションを設定します。 次に、connect-flashで提供されるフラッシュミドルウェアを使用します。

使用方法 express-sessions をexpress 4で使用しています。 cookieParser は不要になりました。

var session = require('express-session');

//...


app.use(session({ cookie: { maxAge: 60000 }, 
                  secret: 'woot',
                  resave: false, 
                  saveUninitialized: false}));