Код работает без ошибок на моем сервере, но я не могу получить флеш-массаж на веб-странице. Это мой полный код:
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>
Ваш код использует message
как переменную:
res.render('signup',{message: req.flash('emailmessage')})
Но ваш шаблон использует emailmessage
:
{{emailmessage}}