2017-06-22 12 views
1

コードはサーバー端末でエラーが発生することなく実行されますが、Webページでフラッシュマッサージを取得できません。これは私の完全なコードです:Node.jsのフラッシュメッセージはページに表示されません

passport.js

if(user) { 
    return done(null, false, req.flash('emailmessage', 'That email is already taken')); 
} else { 
    var userPassword = generateHash(password); 
    var data = { 
     email:email, 
     password:userPassword 
    }; 
} 

auth.js

app.get('/signup', authController.signup,function (req, res, next) { 
    res.render('signup',{message: req.flash('emailmessage')}) 
}); 

app.post('/signup', passport.authenticate('local-signup', { 
    successRedirect: '/dashboard', 
    failureRedirect: '/signup', 
    failureFlash : true 
})); 

mysignup.hbs

{{emailmessage}} 
<div id="frmCheckUsername"> 
    <form id="signup" name="signup" method="post" action="/signup"> 
    <p><label for="email">Email Address</label> 
    <input class="text" name="email" type="email" id="email" required class="demoInputBox" onBlur="checkAvailability()"/><span id="user-availability-status"></span></p> 
    <p><label for="password">Password</label> 
    <input name="password" type="password" required/></p> 
    <input class="btn" name="signbtn" type="submit" id="signbtn" value="Sign Up" /> 
    </form> 
    <span id="signspano" ></span> 
</div> 
+0

はreq.flash()関数が必要です。 [flash](https://github.com/expressjs/flash)ミドルウェアを使用することができます。 –

+0

@YiKai私は既にvar flash = require( 'connect-flash'); –

+0

セッションミドルウェアも? Flashミドルウェアでは、セッションミドルウェアが動作する必要があります。 –

答えて

1
res.render('signup',{message: req.flash('emailmessage')}) 

しかし、あなたのテンプレートはemailmessageを使用しています。:3210は、あなたのコードでは、変数としてmessageを使用したフラッシュメッセージを使用して

{{emailmessage}} 
関連する問題