0
快遞後:警報就繼續即使重裝
router.get('/polls/new', isLoggedIn, (req, res) => {
res.render('new', {title: 'Create a new poll', route: 'new', isLoggedIn: req.isAuthenticated(), errors: req.session.errors});
req.session.errors = null;
});
router.post('/polls', isLoggedIn, (req, res) => {
req.check('title', 'Title must contain atleast 10 characters and must not exceed 100 charcters').isLength({min: 10, max: 100});
var errors = req.validationErrors();
console.log(errors);
if (errors) {
req.session.errors = errors;
res.redirect('/polls/new');
}
EJS:
<% if (errors) { %>
<% errors.forEach((error) => { %>
<div class="alert alert-danger alert-dismissible fade show" role="alert">
<button type="button" class="close alert-dismissible" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>Error!</strong> <%= error.msg %>
</div>
<% }); } %>
正在嘗試當驗證失敗時顯示警告訊息。它工作得很好。但是當頁面重新加載時,即使我將錯誤設置爲空,警報消息仍然顯示。
嘗試把'<%的console.log(錯誤)%>'在EJS文件。我懷疑它會記錄任何令人驚訝的事情,但它應該有助於確認模板實際上運行。我想知道你是否看到某種緩存問題。您也可以在EJS中加入'<%= Date.now()%>'來幫助確認您沒有在瀏覽器中看到緩存副本。 – skirtle