javascript - 引用 Express API 的 javascript 数组中的子对象

标签 javascript json node.js api express

我有这个虚拟数据:

var data = [{
    articles : [{
        id : '0',
        url : 'foo',
        title : 'Foo',
        body : 'some foo bar',
        category : 'foo',
        tags : [
            'foo'
        ]
    }, {
        id : '1',
        url : 'foo-bar',
        title : 'Foo bar',
        body : 'more foo bar',
        category : 'foo',
        tags : [
            'foo', 'bar'
        ]
    }, {
        id : '2',
        url : 'foo-bar-baz',
        title : 'Foo bar baz',
        body : 'more foo bar baz',
        category : 'foo',
        tags : [
            'foo',
            'bar',
            'baz'
        ]
    }]
}, {
    users : [{
        name: 'Admin'
    }, {
        name: 'User'
    }]
}];

我有一个路由器,我只想从文章中请求匹配的文章及其 ID:

// Grab single article
// http://127.0.0.1:3000/api/0
router.get('/:id', function(req, res) {
  if(data.length <= req.params.id || req.params.id < 0) {
    res.statusCode = 404;
    return res.send('Error 404: No quote found');
  };
  var q = data[req.params.id];
  res.json(q);
});

使用以下 URL http://127.0.0.1:3000/api/0 返回文章组,但不返回第一篇文章。

感谢您的帮助!

最佳答案

如果你真的想匹配“id”而不仅仅是数组中的索引,你应该这样做:

var articles = data[0].articles;
var q = articles.filter(function (article) {
   return article.id === req.params.id;
});

res.json(q[0]);

关于javascript - 引用 Express API 的 javascript 数组中的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35374031/

相关文章:

javascript - 在 NodeJS 中设置路径

javascript - 使用 Reflux,资源是 2 家商店还是 1 家商店? (自行车/CurrentBike 与自行车)

javascript - 在 Opera 中关注跨域 Ajax

python - 迭代 Django Rest API 并获取错误

json - ElasticSearch Nest Msearch fn 不会带来所有结果

node.js - 关于node.js开发环境和部署策略的一些问题

javascript - 停止 Javascript 中的事件冒泡

javascript - 在 jasmine 指令 Controller 中返回一个 promise

ios - 如何根据URL区分不同类型的Web Services?

javascript - 我如何知道函数何时超时?