Невозможно отобразить массив в индексе с помощью рулей на сервере NodeJs + Express - PullRequest
0 голосов
/ 24 января 2020

У меня проблема с рулем, которую я не могу решить, сегодня второй день пытаюсь ее решить, но я действительно застрял.

Я пытаюсь использовать руль для В первый раз, потому что я хотел сделать веб-страницу, я работаю на более динамичной c.

На моем сервере я получил mongoDB, есть эта кнопка поиска, где пользователь вводит все, что он хочет, и они должны получать информацию о пользователях от любого соответствующего пользователя.

Ответ на этот запрос выглядит следующим образом:

_id: 5e2201a99162aa0344ed4261,
userName: 'Example',
email: 'example@example.io',
age: '23'

Я пытаюсь получить эти данные и показать их в div для пользователей dom, но по какой-то причине я не могу это сделать.

В моем файле индекса. js на сервере узла я получил эту функцию:

const printSearch = user => {
  console.log(user);
  res.render("main", {
    layout: "index",
    users: user
  });
};

Эта функция является функцией обратного вызова той, которая выполняет запрос, и я знаю, что в этой функции пользователь имеет результат этого запроса внутри из-за console.log(user);.

Затем в main.hbs I иметь следующий код:

<div id="result">
  {{#if users}}
    {{#each users}}
      <p>{{users.userName}}</p>
      <p>{{users.email}}</p>
      <p>{{users.age}}</p>
    {{/each}}
  {{/if}}
</div>

Но по какой-то причине это не не работает, как я уже говорил, это мой первый раз, когда я использую руль, поэтому я представляю, что что-то мне не хватает, но я не могу это выяснить.

Это было бы очень полезно немного помощи здесь, я буду очень рад.

Спасибо всем заранее!

1 Ответ

2 голосов
/ 24 января 2020

Чтобы получить доступ к текущему значению итерации, не используйте {{users.<property>}}, просто: {{property}}. Если users является массивом, выполните:

{{#each users}}
      <p>{{userName}}</p>
      <p>{{email}}</p>
      <p>{{age}}</p>
{{/each}}

В противном случае, если users является единственным объектом, вы можете удалить {{#each}}

<p>{{users.userName}}</p>
<p>{{users.email}}</p>
<p>{{users.age}}</p>
...