2017-05-16 76 views
1

我試圖從我的server.js文件傳遞一個變量爲HTML,但該變量不會顯示在我的EJS文件中。我必須錯過一些東西,因爲它正在另一條路線上工作(使用另一個EJS文件),但我看不到我想要傳遞的表單或變量。如果我在表單之外放置任何東西,但是表單本身不會顯示出來,我可以從我的服務器調用console.log,它顯示我從我的模型中找到變量,並通過回調錯誤測試。我已經嘗試使用工作EJS代碼來代替表單,並且不會顯示。因爲我可以把任何東西放在窗體外面,所以它又到了正確的位置。Mongoose/Express/Nodejs嘗試從服務器到html傳遞變量

此外,我沒有收到錯誤,表單或變量根本沒有顯示在EJS文件中。如果我改變任何東西在我的<%%>標籤(如下圖所示):

<% for(var i=0;i<turtles.length;i++){ %> 

它會導致沒有定義的錯誤說法(例如)龜(/例)。所以它知道它在那裏。

預先感謝您。

我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> 
<% } %> 

回答

2
你使用,如果您想要通過蒙戈司機 findOne方法,它返回一個單一的文件,對象,

結果是有一個數組,允許在.ejs模板中迭代,試試用find

相關問題