我的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
文件中正确地解析它并从中获取对象,但是donate
是一个json数组,如果您想从它的对象中获取属性,您应该用index
定义您想要哪个对象,所以如果您想从donate
获得第一个对象,您应该将它发送给像donate[0]
这样的客户机