javascript - Mongoose/Express/Nodejs 试图将变量从服务器传递到 html

标签 javascript node.js mongodb express mongoose

我正在尝试将一个变量从我的 server.js 文件传递​​到 HTML,但该变量不会显示在我的 EJS 文件中。我一定是遗漏了一些东西,因为它正在另一条路线上工作(使用另一个 EJS 文件),但我看不到我试图传递的表单或变量。如果我将任何东西放在表单之外,它会显示出来,但表单本身不会显示,我可以从我的服务器中获取 console.log,它显示我正在从我的模型中找到变量,并且它通过了回调错误测试。我试过使用有效的 EJS 代码代替表单,但也不会显示。它再次到达正确的位置,因为我可以将任何东西放在表单之外。

我也没有收到错误,表单或变量根本没有显示在 EJS 文件中。如果我更改了 <% %> 标签内的任何内容(如下所示):

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

它会导致错误提示 (example)turtle(/example) is not defined。所以它知道它在那里。

提前谢谢你。

我的 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 模板中迭代,尝试使用 查找

关于javascript - Mongoose/Express/Nodejs 试图将变量从服务器传递到 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44010779/

相关文章:

java - 如何使用java远程连接到我的服务器中的MongoDB?

MongoDB - 有没有办法在哈希上执行 $set 而不覆盖现有/未引用的键/值?

javascript - 尝试学习递归,不太了解范围

javascript - 获取 Anchor 的下一个元素

javascript - 使用 MCAutocomplete Jquery UI 在 MVC 中多列返回未定义

node.js - Firebase 部署在 tsc 命令中返回错误

javascript - Arr.map 返回 null 而不是完全删除对象?

javascript - 或者运算符在 IF 语句 Node.js 中不起作用

javascript - 将 NodeJS 变量发送到 JavaScript

java - 玩 Morphia MongoDB : The type Filter is already defined