无法在 NodeJs+Express 服务器上使用把手在索引上显示数组

Can't show array on index using handlebars on a NodeJs+Express server

我在使用车把时遇到了无法解决的问题,今天是尝试解决它的第二天,但我真的卡住了。

我第一次尝试使用把手,因为我想让我正在处理的网页更加动态。

在我的服务器上,我有一个 mongoDB,有一个搜索按钮,用户可以在其中输入他们想要的任何内容,他们必须从任何匹配的用户那里获取用户信息。

该查询的响应如下:

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

我想做的是获取该数据并将其显示在 div 用户 dom 上,但由于某些原因我无法做到这一点。

在节点服务器上我的 index.js 文件中,我得到了这个函数:

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

这个函数是查询函数的回调函数,我知道在这个函数中,由于 console.log(user);.

,用户在里面有那个查询的结果

然后在 main.hbs 我有以下代码:

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

但由于某些原因不起作用,正如我之前所说,这是我第一次使用车把,所以我想我缺少一些东西,但我无法弄清楚。

在这里提供一点帮助真的很有帮助,我会很高兴。

先谢谢大家了!

要访问当前迭代值,请不要使用 {{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>