我的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]这样的客户机

08-07 23:31
查看更多