Переменная в ExpressJS не определена в той же форме - PullRequest
0 голосов
/ 25 ноября 2018

Я столкнулся с проблемой, когда переменная в Express / EJS не определена и, следовательно, представление не загружается.Здесь я хочу отобразить переменную с именем weather на странице, если она определена.Вместо этого я получаю ошибку «погода не определена».Я также попробовал «ноль».Это, кстати, в начале.Потому что, когда я отправляю форму, переменная погоды будет определяться значением из входных данных.Таким образом, вечер закончился, но безуспешно.Есть ли лучший подход или у меня ошибка в том, как я хочу это сделать?

Ниже приведен код (я предполагаю, что проблема скорее в 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 голосов
/ 07 декабря 2018

Это будет хорошо работать, если вы используете typeof

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

  <% if(typeof error !== 'undefined'){ %>
    <p><%= error %></p>
  <% } %>
0 голосов
/ 25 ноября 2018

Проблема решена с помощью «местных жителей».Вот как выглядит код.Я отредактирую ответ как можно скорее и объясню, почему местные жители - причина, почему это работает.

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

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