【问题标题】:nodejs + ejs for if express returns a unexpected catchnodejs + ejs for if express 返回意外捕获
【发布时间】:2013-07-01 19:29:17
【问题描述】:

我确定这很愚蠢,但我无法让它为我的生活工作,我只想在 ejs 上使用 if 内部做一个简单的 for 语句,但它一直在 express 中返回一个意外的 catch 事件。

为了设置场景,我有一个 JSON,它使用 ejs 作为我的模板渲染器在 nodejs 中设置一个注册表单,假设我有以下代码:

var userData:{
        "username":"User name",
        "email":"johndoe@gmail.com",
        "password":"Please enter Password",
        "birthdate":"date"
        }

我有一个 ejs 文件

<h1 id="page-title"><%= title %></h1>
<div id="list">
<form action="user/create/" method="post" accept-charset="utf-8">
    <div class="item-new">
    <% for (var key in userData){ %>
        <% if(key != 'birthdate'){ %>
        <input class="input" type="text" name="<%= key %>"  placeholder="<%= userData[key] %>"/>

        <% }else{ %>
        //do something
    <%  } %>

</div>

我尝试预先定义一个变量并检查定义的值

【问题讨论】:

  • 好的,所以我想我可能已经弄清楚了...似乎因为我从外部文件解析我的 json 我无法访问它的键,我重新做了示例并应用了:var obj = userData.toJSON(userData);我会检查这个实际案例的更新,如果它有效,我会在这里发布整个代码。

标签: node.js backbone.js ejs


【解决方案1】:

如果您提供的示例确实是您的所有代码,那么您并没有关闭所有标签,特别是,您没有关闭您的 for 循环、您的 div 之一或您的表单。当我关闭所有这些时,视图将为我呈现而不会出现错误。这是我用的ejs:

<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style-min.css' />
  </head>
  <body>
  <h1 id="page-title"><%= title %></h1>
  <div id="list">
    <form action="user/create/" method="post" accept-charset="utf-8">
        <div class="item-new">
          <% for (var key in userData){ %>
            <% if(key != 'birthdate'){ %>
              <input class="input" type="text" name="<%= key %>"  placeholder="<%= userData[key] %>"/>
            <% } else{ %>
            <% } %>
          <% } %>
        </div>
     </form>
  </div>
  </body>
</html>

我用这个函数来渲染它:

exports.test = function(req, res){
  res.render('test', { title: 'nodejs + ejs for if express returns a unexpected catch', userData:{
        "username":"User name",
        "email":"johndoe@gmail.com",
        "password":"Please enter Password",
        "birthdate":"date"
        }});
};

当我使用上述内容时,结果如下:

【讨论】:

  • 谢谢!,我发布的代码是一个浓缩版本,可以理解这个想法,我的问题是在引用外部 JSON 时。谢谢你,我的朋友。
猜你喜欢
  • 2019-06-06
  • 2019-01-28
  • 2012-09-27
  • 2016-11-01
  • 2012-12-27
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多