1
Le code s'exécute sans aucune erreur sur mon terminal serveur mais je n'arrive pas à obtenir le flash sur la page Web. Ceci est mon code complet:Les messages flash Node.js ne s'affichent pas sur la page
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>
L'utilisation des messages flash nécessite une fonction req.flash(). Vous pouvez utiliser le middleware [flash] (https://github.com/expressjs/flash). –
@YiKai j'ai déjà var flash = require ('connect-flash'); –
Et middleware de session aussi? Flash middleware nécessite middleware de session pour fonctionner. –