我的部分js脚本无法在我的ejs文件中工作

时间:2017-06-11 06:05:18

标签: javascript mysql node.js ejs

" 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;
&#13;
&#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语句之外,其余代码都可以正常工作。即从我的数据库中检索的数据是正确的。

1 个答案:

答案 0 :(得分:1)

这是因为你发送一个名为cause的json数组,然后在.ejs文件中你正确地解析它并从中获取对象,但donate是一个json数组,如果你想得到属性从它的对象你应该用index定义你想要的对象,所以如果你想要donate中的第一个对象,你应该把它发送到客户端,如donate[0]