【问题标题】:How to pass json response to jade and loop the results如何将json响应传递给jade并循环结果
【发布时间】:2016-03-08 06:12:37
【问题描述】:

我正在尝试使用 node.js 应用程序,我在其中发出 http 请求。响应是json格式的,需要在jade页面中显示。当我尝试这样做时,我没有得到正确的 JSON 响应。

app.js

var request = require('request');
var options = {
    url: 'my URL goes here ',
    method: 'POST',
    headers: {
          'Content-Type': 'application/json'
      },
    auth: {
    user : 'USERID',
    pass : '****'
          },
    body: JSON.stringify("1": "T1111")
}
request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
           res.render('CRUD/singleselect', {
            title: 'Select',
            name: 'You!',
            result: body
  });
    }
    else
    {
        console.log(response.statusCode);
        req.flash('errors', { msg: 'Error during select' });
    }
})

实际的反应是

{"ResultSet Output":[{"EMP_ID":"T1111","EMP_NAME":"ABC","DESIGNATION":"ENGINEER","REGISTRATION":"YES"}],"StatusDescription":"Execution Successful","StatusCode":200}

单选.jade

extends ../layout

block content
  .page-header
    table
      thead
    tbody
     table.table.table-striped.table-bordered.table-hover.table-condensed
      tr
        th EMPID
        th EMPNAME
        th DESIGNATION
         - var cnt = 1;
      each key, ind in result
        td= (cnt++)+'.'
        td= key
        tr

当我这样做时,我得到的响应是这样的

1.  {
2.  "
3.  R
4.  e
5.  s
6.  u
7.  l
8.  t
9.  S
10. e
11. t
12. 
13. O
14. u
15. t
16. p
17. u
18. t
19. "
20. :
21. [
22. {
23. "

我想要这样的输出

S.No EMPID EMPNAME DESIGNATION
1     T1111 ABC   ENGINEER  

请帮忙

【问题讨论】:

    标签: json node.js express pug


    【解决方案1】:

    我认为问题在于您正在设置字符串响应。你应该试试这个:(将它解析为 json 并选择 "ResultSet Output"results,因为你直接循环这个属性。

           res.render('CRUD/singleselect', {
            title: 'Select',
            name: 'You!',
            result: JSON.parse(body)['ResultSet Output']
           });
    

    我是handelbars 的人,但我强烈关注应该可以工作。

    extends ../layout
    
    block content
      .page-header
        table
          thead
        tbody
         table.table.table-striped.table-bordered.table-hover.table-condensed
          tr
            th EMPID
            th EMPNAME
            th DESIGNATION
             - var cnt = 1;
          each record, index in result
            td= record.EMP_ID
            td= record.EMP_NAME
            td= record.DESIGNATION
            tr
    

    希望这会有所帮助。

    【讨论】:

    • 嗨戴夫,感谢您的意见。但现在我得到的响应是 [object Object]
    • 这意味着你在正确的轨道上,只需要相应地修改你的view。给我一分钟,我会更新答案。
    • 非常感谢戴夫。像魅力一样工作:)
    猜你喜欢
    • 2017-02-11
    • 1970-01-01
    • 2018-07-23
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多