使用node.js获取特定的JSON对象

时间:2015-09-15 15:35:38

标签: javascript node.js express

我希望能够键入localhost:3000 / courses / 1,并且能够从id:1中仅显示json文件中的对象。

我有一个到这样的网站课程的路径,它在视图中显示我的JSON文件,当我按它应该循环它时。 js:json是我需要的JSON文件。

    app.get('/courses', function(req, res) {
    res.render('courses', {
        title: "Hello",
        name: "Fredrik",
        js: json
    });
});

[
{
"id":1,"courseId":"DT162G","courseName":"Javascript-baserad webbutveckling","coursePeriod":1
},
{
"id":2,"courseId":"IK060G","courseName":"Projektledning","coursePeriod":1
},
{
"id":3,"courseId":"DT071G","courseName":"Programmering i C#.NET","coursePeriod":2
}
]

但是当我输入localhost:3000 / courses / 1或/ 2或/ 3时,如何制作一条只显示JSON文件的一个特定部分的路径?

因此视图看起来像这样..

 "id":1,"courseId":"DT162G","courseName":"Javascript-baserad webbutveckling","coursePeriod":1

2 个答案:

答案 0 :(得分:1)

app.get('/courses/:id', function(req, res) {
    res.render('courses', {
        title: "Hello",
        name: "Fredrik",
        js: req.params.id !== undefined ? json.filter(function(obj) {return obj.id== req.params.id};}) : json
    });
});

答案 1 :(得分:0)

您可能需要在路线中添加参数

app.get('/courses/:id', function(req, res) {
    res.render('courses', {
        title: "Hello",
        name: "Fredrik",
        js: getData(req.params.id)
    });
});

然后是一个返回对象的简单函数

function getData (id) { 
   if(typeof id == "undefined") {
       return json;
   }

   for(var i in json) { 
      if(json[i].id == id) {
         return json[id];
      }
   }
}