2016-06-08 5 views
0

Так что я использовал express.js под node.js и столкнулся с этим вопросом. У меня есть страница входа в систему, где, если вы ошиблись в пароле/имени пользователя, оно запустит сообщение (базовый материал с использованием паспорта). Но если вы продолжаете пытаться, другие сообщения об ошибках будут стекаться (только по 1 из них, но они все еще там, когда они не актуальны).Как удалить флеш-сообщения после загрузки страницы с помощью экспресс?

Есть ли способ удалить флеш-сообщения после их отображения? Я использую this flash.

Вот что я пытался до сих пор:

router.get("/login", function(req, res){ 
    res.render("login"); 
    res.locals.flash = []; 
}); 

и мой пост REQ

router.post("/login", passport.authenticate(
    "local", 
    { 
    successRedirect: "/", 
    failureRedirect: "/login", 
    failureFlash: true 
    } 
)); 

ответ

1

Я предлагаю вам использовать connect-flash пакет, с этим вы можете сделать smtg так:

app.post('/login', function(req, res){ 
    // if credentials are wrong 
    req.flash('msg', 'Try again !') 
    res.redirect('/login'); 
}); 

app.get('/login', function(req, res){ 
    res.render('login', { message : req.flash('msg') }); 
}); 

В взглядах вам просто нужно проверить для сообщение существование и вывести его с EJS было бы smtg так:

<% if(message){ %> 
    <%= message %> 
<% } %> 

package:connect-flash

+0

ли вспышки настойчив? – Snorflake

+0

Нет, поэтому я предложил их, они только выводят первый раз, как только вы обновляете страницу, они ушли. –

+0

проверьте документы пакета, вы можете делать с ним отличные вещи. –

Смежные вопросы