2017-06-22 1 views
1

Der Code läuft ohne Fehler auf meinem Server-Terminal, aber ich kann nicht die Flash-Massage auf der Webseite bekommen. Das ist mein voller Code:Node.js Flash-Nachrichten werden nicht auf der Seite angezeigt

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

Mit Flash-Mitteilungen erfordert eine req.flash() Funktion. Sie können die [flash] (https://github.com/expressjs/flash) Middleware verwenden. –

+0

@YiKai ich habe schon var flash = require ('connect-flash'); –

+0

Und Session Middleware auch? Flash-Middleware benötigt eine Session-Middleware, um zu funktionieren. –

Antwort

1

Ihr Code verwendet message als Variable:

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

Aber Ihre Vorlage verwendet emailmessage:

{{emailmessage}} 
Verwandte Themen