Flash-сообщения Node.js не отображаются на странице

1

Код работает без ошибок на моем сервере, но я не могу получить флеш-массаж на веб-странице. Это мой полный код:

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>

1 ответ

1
Лучший ответ

Ваш код использует message как переменную:

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

Но ваш шаблон использует emailmessage:

{{emailmessage}}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню