【问题标题】:Get specific JSON object with node.js使用 node.js 获取特定的 JSON 对象
【发布时间】:2015-09-15 15:35:38
【问题描述】:

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

我有一条通往网站课程的路线,看起来像这样,当我按应有的方式循环浏览它时,它会在视图中显示我的 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

【问题讨论】:

    标签: javascript node.js express


    【解决方案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
        });
    });
    

    【讨论】:

    • 效果很好!我对 Node 真的很陌生,所以如果你能解释一下代码是如何工作的,那就太棒了!
    【解决方案2】:

    您可能需要为您的路线添加一个参数

    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];
          }
       }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      相关资源
      最近更新 更多