渲染Jade / Pug中的对象数组

时间:2017-01-25 16:01:57

标签: javascript node.js express pug

我没有为Pug / Jade模板找到很多东西,所以我试试这里。 我一直在阅读迭代文档以及此链接here

我正在使用Node.js,Express和pug。到目前为止,我有一些功能服务器端收集一些关于用户的数据(我正在建立一个假的约会网站作为学校项目) 所以我的代码服务器端看起来像这样:

router.post('/matchaSearch', function (req, res) {
  matchaSearch(pool, session.uniqueID)
     .then((results) => {

       res.results = JSON.stringify(results)
       console.log('result', results)
       res.render('./userMatch', {res})
       })
     .catch((err) => {
       console.error('error', err)
       res.status(500).send("we don't have any suggestions for you so far")
       })
     })

我可以在iterm中记录results,我的所有数据都在这里,但是当涉及到客户端时,它有点不同。

h1
 |Here are your suggestions
script.
 console.log(!{res.results}[0].username)
ul
  for username in res.results
    li= username

在这里,我可以在我的浏览器控制台中记录res.results中的第一个用户名,但在我的页面中我的li正在呈现:

以下是您的建议

[

{

“。

.I

.D

“。

0.3

0.3

你能在这里理解我的问题吗? 它显示了我的对象数组中的每个字符。 我只想将用户名显示为链接,以便我可以显示一些建议用户的建议页面。

我想知道是否可以使用jquery将html渲染到我的li然后调用它,但我也在这里面对墙。 任何帮助都非常欢迎! 谢谢。

2 个答案:

答案 0 :(得分:9)

{res}对javascript没有任何意义。你应该提供一个对象包括键/值对的模板:

res.render('./userMatch', {results: results})

然后你的模板循环就成了:

ul
  for item in results
    li= item.username

答案 1 :(得分:3)

    h1
     |Here are your suggestions
    script.
     console.log(!{res.results}[0].username)
    ul
      for username in res.results
        li= username.username

我认为用户名是对象而你正在打印整个