我的js脚本的一部分不工作在我的ejs文件中

我的ejs文件中的“if”语句似乎不起作用。

这是我的.ejs文件:

<!DOCTYPE html> <html> <head> <title>causelist</title> </head> <body> <h1>Select the causes you want to back.</h1> <form action="/causelist" method="post"> <% cause.forEach(function(cause){ %> <input type="checkbox" name="cause" value="<%= cause.CauseId %>" <% if (cause.CauseId===donate.CauseId1 || cause.CauseId===donate.CauseId2 || cause.CauseId===donate.CauseId3 || cause.CauseId===donate.CauseId4 || cause.CauseId===donate.CauseId5) { %> checked <% } %> > <%= cause.CauseName %> <br> <% }) %> <input type='submit'> </form> </body> </html> 

这是我的app.get呈现页面,并从我的MySQL数据库检索后发送值:

 app.get('/causelist', ensureAuthenticated, function(req,res){ connection.query("select * from DonateTo where UserId = "+ req.user.UserId, function(err,rows){ if(err) console.log(err); var donate = rows; console.log("donate:"+ donate); connection.query("SELECT * FROM Causes",function(err,rows){ var cause = rows; console.log("cause:"+ cause); res.render('causelist',{cause,donate}); if(err) console.log(err); }); }); }); 

我不明白我错过了什么。
注:除了if语句,其余的代码工作正常。 即从我的数据库检索的数据是正确的。

那是因为你发送了一个名为cause的json数组,然后在.ejs文件中正确parsing它,并从中获取对象,但是.ejs是一个json数组,如果你想从它的对象中获取属性,你应该定义你想要的index对象如果你想要donate的第一个对象,你应该发送给客户,如donate[0]