Javascript 快速验证器;ejs中未定义错误变量
我有一个问题,我一直在努力解决一段时间了,希望有人能给我指出正确的方向 我在res.render{}对象中传递的变量(错误)在布局文件中不可用。该问题记录为引用错误 如果我取出ejs代码,我的错误会正确地记录到终端上;我只是无法在布局文件中使用它 以下是layout.ejs代码的一部分Javascript 快速验证器;ejs中未定义错误变量,javascript,node.js,express,ejs,Javascript,Node.js,Express,Ejs,我有一个问题,我一直在努力解决一段时间了,希望有人能给我指出正确的方向 我在res.render{}对象中传递的变量(错误)在布局文件中不可用。该问题记录为引用错误 如果我取出ejs代码,我的错误会正确地记录到终端上;我只是无法在布局文件中使用它 以下是layout.ejs代码的一部分 <% for(var i = 0; i < errors.length - 1; i++){ %> <li> <%= errors[i] %> </li>
<% for(var i = 0; i < errors.length - 1; i++){ %>
<li> <%= errors[i] %> </li>
<% } %>
和后
//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('/');
}
});
}
});
//POST路由
app.post('/articles/add',函数(req,res){
request.assert('title','Enter title').notEmpty();
request.assert('author','Enter author').notEmpty();
req.assert('body','enteraarticle').notEmpty();
//出错
req.getValidationResult().then(函数(err){
if(err.isEmpty()){
控制台日志(err);
res.render('添加文章'{
标题:“添加文章”,
错误:err/据我所知,您的代码中有两个错误。首先,if(err.isEmpty())
,当err为空时,您试图发送err!!另一个是使用req.getValidationResult()
,它将使用result对象而不是数组来解决问题。下面是可能有用的代码
//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(result){
if(!err.isEmpty()){
console.log(err);
res.render('add_article',{
title: 'Add Article',
errors: result.array() // <-
});
}
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('/');
}
});
}
});
[
{param: "email", msg: "required", value: "<received input>"},
{param: "email", msg: "valid email required", value: "<received input>"},
{param: "password", msg: "6 to 20 characters required", value: "<received input>"}
]