0
私は今私がしばらくの間把握しようとしていた問題を抱えており、誰かが私を正しい方向に向けることができると願っていました。エクスプレスバリデータ。エラー変数がejs内で定義されていません
私がres.render {}オブジェクトに渡している変数(エラー)は、レイアウトファイル内で使用できません。問題は、参照エラーとして記録されます。
私はejsコードを取り出すと、私のエラーが端末に正しく記録されます。レイアウトファイル内で使用することができません。
以下は、layout.ejsコードの一部です。
<% for(var i = 0; i < errors.length - 1; i++){ %>
<li> <%= errors[i] %> </li>
<% } %>
とPOST ...
//POST route
app.post('/articles/add', function(req, res){
req.assert('title', 'Enter title').notEmpty();
req.assert('author', 'Enter author').notEmpty();
req.assert('body', 'Enter an article').notEmpty();
//get errors
req.getValidationResult().then(function(err){
if(err.isEmpty()){
console.log(err);
res.render('add_article',{
title: 'Add Article',
errors: err // <-
});
}
else {
let article = new Article();
article.title = req.body.title;
article.author = req.body.author;
article.body = req.body.body;
article.save(function(e){
if(e) {console.log(e)}
else{
req.flash('success', 'Article Added');
res.redirect('/');
}
});
}
});
任意の助けてくれてありがとう。