在ExpressJS中未在Same-View表单上定义的变量

时间:2018-11-24 22:48:06

标签: express ejs

我遇到一个问题,其中Express / EJS中的变量未定义,因此视图无法加载。 在这里,如果要定义,我想在页面上显示一个名为weather的变量。相反,我收到错误“天气未定义”。我也尝试过'null'。顺便说一下,这只是开始。因为,当我提交表单时,天气变量将由输入中的值定义。所以那天晚上,我尝试了一下,没有成功。有没有更好的方法,或者我做事的方式有误?

以下显示了代码(我认为问题更多是关于Express / EJS而不是Node):

<html>
  <head>

  </head>
  <body style="background-color:gray; color:black;">
    <h1>
      Hello World
    </h1>
    <form action="/form" method="post">
        <label for="team_name">Enter name: </label>
        <input id="team_name" type="text" name="name_field" value="Default name for team.">
        <input type="submit" value="OK">
    </form>

  <% if(weather !== 'undefined'){ %>
    <p><%= weather %></p>
  <% } %>

  <% if(error !== 'undefined'){ %>
    <p><%= error %></p>
  <% } %>

  </body>
</html> 

谢谢。

2 个答案:

答案 0 :(得分:0)

使用“本地”解决的问题。这就是代码的样子。我将尽快编辑答案,并解释为什么本地人是它起作用的原因。

  <% if(locals.weather !== 'undefined'){ %>
    <p><%= locals.weather %></p>
  <% } %>

  <% if(locals.error !== 'undefined'){ %>
    <p><%= locals.error %></p>
  <% } %>

答案 1 :(得分:0)

如果您使用typeof

,那会很好
<% if(typeof weather !== 'undefined'){ %>
    <p><%= weather %></p>
  <% } %>

  <% if(typeof error !== 'undefined'){ %>
    <p><%= error %></p>
  <% } %>