首页 > 解决方案 > JS API 根据某些参数的值获取数据库项

问题描述

我有一个看起来像这样的数据库:

[{"id":1,"type":"a"},
 {"id":2,"type":"b"},
 {"id":3,"type":"c"},
 {"id":4,"type":"a"}]

我需要的是使用 fetch 仅获取其类型参数具有特定值的数据库项目(例如,获取 type='a' 应该获取 ID 为 1 和 4 的项目)。到目前为止,我只有这样的 get 功能:

get() {
return new Promise((resolve, reject) => {
  fetch(`url`,) 
    .then(response => response.json())
    .then(json => resolve(json))
    .catch(err => {
      reject(err);
    });
});

并且无法弄清楚如何过滤数据库。

标签: javascriptreactjsfetch

解决方案


前端解决方案:在前面过滤您的 json 结果:(如果您的数据库有很多项目,这不是一个好主意,因为您仍然通过 http 获取所有项目,然后在浏览器中过滤它们,这是额外的工作服务器和浏览器)

get(type) {
    return fetch('url')
      .then(res => res.json())
      .then(json => json.filter(item => item.type == type))
      //.catch(err => doSomethingWithErr(err)) 
      //you can handle error here or when you use get
}

后端解决方案:将查询字符串添加到您的 url 并在后端处理它以仅从数据库中获取所述类型。由于我们不了解您的后端堆栈,因此无法为您提供有关此代码的代码。


推荐阅读