" if"我的ejs文件中的陈述似乎无效。
这是我的.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>
&#13;
这是我的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语句之外,其余代码都可以正常工作。即从我的数据库中检索的数据是正确的。
答案 0 :(得分:1)
这是因为你发送一个名为cause
的json数组,然后在.ejs
文件中你正确地解析它并从中获取对象,但donate
是一个json数组,如果你想得到属性从它的对象你应该用index
定义你想要的对象,所以如果你想要donate
中的第一个对象,你应该把它发送到客户端,如donate[0]