2017-05-29 10 views
0

私はconnect-flashでエラーメッセージを表示しようとしていますが、動作していないようです。私はこの作業を行うためにいくつかの方法を試しましたが、どれも効果がありました。私は同様の設定コードを持つWebアプリケーションを持っていて、問題なく動いていました。ここノード - 接続 - フラッシュが動作しない

は私のコードです:

const express = require('express') 
const moment = require('moment') 
const morgan = require('morgan') 
const bodyParser = require('body-parser') 
const db = require('./configs/db') 
const flash = require('connect-flash') 
const session = require('express-session') 
const cookieParser = require('cookie-parser') 
const app = express() 

app.set('view engine', 'ejs') 
app.set('views', 'views') 
app.set(db) 
app.use(bodyParser.urlencoded({extended:true})) 
app.use(bodyParser.json()) 
app.use(morgan('dev')) 
app.use(cookieParser()) 
app.use(session({ 
    secret: 'keyboard cat', 
    resave: false, 
    saveUninitialized: true, 
    cookie: { secure: true } 
})) 
app.use(flash()); 
var sessionFlash = function(req, res, next) { 
    res.locals.currentUser = req.user; 
    res.locals.error = req.flash('error'); 
    res.locals.success = req.flash('success'); 
    next(); 

} 
app.use(sessionFlash) 




app.get('/', function (req, res) { 
    req.flash('error', 'Welcome'); 
    res.render('test', { 
    title: 'Home', 
    }) 
}); 
app.get('/addFlash', function (req, res) { 
    req.flash('error', 'Flash Message Added'); 
    res.redirect('/'); 
}); 

私EJSファイル:

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Test</title> 
    </head> 
    <body> 
    <% if(error){ %> 
     <div class=""> 
      <h1><%=error%></h1> 
     </div> 
    <% } %> 
    </body> 
</html> 

答えて

0

私はあなたが次なる場合には、HTTPS経由でサーバーにサービスを提供していないことを推測するつもりですセッションクッキーが設定されないようにします。

cookie: { secure: true } 

the documentationを参照してください。

+0

ああ、ありがとう、仲間! –

関連する問題