我正在尝试将我的server.js文件中的变量传递给HTML,但该变量不会显示在我的EJS文件中。我必须丢失一些东西,因为它正在另一个路径(使用另一个EJS文件),但我看不到我试图传递的表单或变量。如果我把任何东西都放在它出现的表单之外,但表单本身不会显示,我可以从我的服务器上调用console.log,它显示我从我的模型中找到变量并且它通过了回调错误测试。我尝试使用工作的EJS代码代替表单,也不会显示。它再次出现在正确的位置,因为我可以在表格之外放置任何东西。
此外,我没有收到错误,表单和变量根本没有出现在EJS文件中。如果我更改了我的< %%>内的任何内容标签(如下所示):
<% for(var i=0;i<turtles.length;i++){ %>
它会导致错误(例如)未定义turtle(/ example)。所以它知道它就在那里。
提前谢谢。
我的server.js文件:
edit: function(req, res){
Turtle.findOne({_id: req.params.id}, function(err, turtle){
if(err){}
else{
console.log(turtle._id);
res.render("edit", {turtles:turtle})}
})
},
我的edit.ejs:
<% for(var i=0;i<turtles.length;i++){ %>
<h3><%= turtles[i].name %></h3>
<form action='/turtles/<%= turtles[i]._id %>' method='post'>
<p>Name: <input type='text' name='name' value="<%= turtles[i].name %>"></p>
<p>Favorite color: <input type='text' name='favecolor' value="<%= turtles[i].favecolor %>"></p>
<p><input type='submit' value='Edit'></p>
</form>
<% } %>
答案 0 :(得分:2)
你正在使用mongo驱动程序的findOne
方法返回单个文档,一个对象,如果你想要的结果是一个数组,允许在.ejs模板中迭代,尝试使用{{1} }