如何在Node / Jade / Express视图中迭代和解析JSON数据?

时间:2012-07-19 22:10:11

标签: json node.js express pug

我是Node的新手,仍处于了解其使用和功能的初级阶段。如果这个问题非常简单或天真,我会道歉 - 我在问之前做了适当的研究。

在我的express js应用程序中,我向远程API发送了一个GET请求,并正确地接收了相应的JSON数据。然后我将它传递给我的视图(Jade),并且目前能够以字符串形式打印JSON。一切正常。

我拥有的JSON数据是一组人员/俱乐部成员以及相关领域。我想“抓住”所有人,并在一个组织良好的表格中显示他们的名字和相关信息。

所以我的问题是,解析JSON数据的最佳方法是什么,以便我可以访问视图中的名称和相关信息

我的请求看起来像这样,其中数据是发送到视图的JSON:

res.render('standings.jade', { locals: {
          data: body,
          title: 'Team Member Information'
        }
});

我非常简单的观点如下:

h2= title
p= data

我尝试过使用data.members,数据。[成员],数据。[“成员”],数据[成员]等无济于事。当然,我错过了一些愚蠢的事情?我对成员列表感兴趣,返回的JSON如下所示:

{
"club":
{"id":1,"name":"This is a team name"},
"members":
[{"id":2,"name":"Test Name"},{"id":3,"name":"Another Name"},{"id":4,"name":"More Names"},{"id":5,"name":"Cool Person"}]
}

提前致谢!

1 个答案:

答案 0 :(得分:3)

要处理JSON数据,请使用express.bodyParser()中间件。这将使您的路由回调中的req.body对象可用。在路径处理函数中,将req.body作为视图本地的一部分传递给视图。

app.post("/some/path", express.bodyParser(), function (req, res) {
    res.render("standings.jade", {
        locals: {data: req.body, title: "Team Member Information"}
    });
});

在您看来,您将能够访问data.members以获取团队成员。

each member in data.members
    p= member.name