簡體   English   中英

Mongoose / Express / Nodejs嘗試將變量從服務器傳遞到html

[英]Mongoose/Express/Nodejs Trying to pass in a variable from server to html

我正在嘗試將server.js文件中的變量傳遞給HTML,但是該變量不會顯示在EJS文件中。 我必須丟失一些東西,因為它正在另一條路線上(帶有另一個EJS文件)工作,但是我看不到我要傳遞的表單或變量。 如果我在表單外放置任何內容,它將顯示出來,但是表單本身將不會顯示,並且可以從服務器上進行console.log的顯示,這表明我正在從Models中找到該變量,並通過了回調錯誤測試。 我已經嘗試過使用可工作的EJS代碼來代替表單,但也不會顯示。 再次將它移到正確的位置,因為我可以將任何表格之外的內容放入。

另外,我也沒有收到錯誤,EJS文件中沒有顯示表單或變量。 如果我更改<%%>標記內的任何內容(如下所示):

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

這會導致錯誤,提示未定義(example)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>
<% } %>

您正在使用mongo驅動程序的findOne方法,該方法將返回一個文檔(一個對象),如果所需結果是一個數組,允許在.ejs模板中進行迭代,請嘗試使用find

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM