2016-10-19 2 views
0

sqlite3을 사용하여 자습서 중 하나에 따라 인증 응용 프로그램을 만들었습니다. 뷰를 핸들 바에서 html 파일로 바꿀 때까지 모든 것이 잘 동작했습니다.급한 메시지 및 플래시 메시지가 표시되지 않습니다.

인증 시스템이 작동하지만 플래시 메시지를 팝업 할 수 없습니다. 어쩌면 나 한테 조언 해 줄 수있을거야.

내 미들웨어 :이 예에서는

var express = require('express'); 
var path = require('path'); 
var app = express(); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var exphbs = require('express-handlebars'); 
var expressValidator = require('express-validator'); 
var flash = require('connect-flash'); 
var session = require('express-session'); 
var passport = require('passport'); 
var LocalStrategy = require('passport-local').Strategy; 

app.set('views', path.join(__dirname, 'views')); 
app.engine('.html', require('ejs').__express); 
app.set('view engine', 'html'); 

app.use(express.static(path.join(__dirname, 'public'))); 

app.use(function(req,res,next) { 
res.locals.success_msg = req.flash('success_msg'); 
res.locals.error_msg = req.flash('error_msg'); 
res.locals.error = req.flash('error'); 
res.locals.users = req.user || null; 
next(); 
}); 

서버 측 :

<%= if (error_msg) { %> 

    <div class="alert alert-danger"> You are not loged in</div> 
<% } %> 

아무도 나를 도울 수 :

router.post('/login', 
passport.authenticate('local',{ successRedirect: '/play/gallery',failureRedirect: '/users/login',failureFlash:true }), 
function(req,res) { 
res.redirect('/'); 

req.flash('success_msg','You are logged in'); 

}); 

router.get('/logout',function(req,res){ 
req.logout(); 

req.flash('success_msg','You succesfully logged out'); 

res.redirect('/users/login'); 
}) 

및 예를 들어 내가 이것을 사용하는 register.html

이것은 등록 페이지를로드하지 않기 때문에 코드를 선언하는 방법입니다.

미리 감사드립니다.

답변

2

자신이 해결 :

<% if (error.length > 0){ %> 

<div class="alert alert-danger"><%= error %></div> 

<% } %> 

<% if (success_msg.length > 0){ %> 

<div class="alert alert-success"><%= success_msg %></div> 

<% } %> 
<% if (error_msg.length > 0){ %> 

<div class="alert alert-danger"><%= error_msg %></div> 

<% } %> 
관련 문제