如何返回路由中指定的所有“数据”匹配查询参数

时间:2019-04-25 14:10:35

标签: node.js query-parameters

我对Node.js很陌生。我最近使用基本数据结构深入研究了REST API端点。我正在制作GET/loans,通常会返回我所有的贷款申请。但是我正在尝试对其进行重构,以适应查询参数端点GET/loans?status=approve&repaid=true && GET/loans?status=approve&repaid=false

这是我的获取请求的样子。效果很好

static getLoans(req, res) {
    return res.status(200).send({
      status: 200,
      data: loans,
    });
  }

我正试图将其重构为退还其详细信息与查询参数匹配的贷款,这是行不通的:

static getLoans(req, res) {
    if (req.query) {
      const queryStatus = req.query.status;
      const queryRepaid = req.query.repaid;
      const data = loans.filter(item => item.queryStatus && queryRepaid);
      return res.status(200).send({
        status: 200,
        data,
      });
    }
    return res.status(200).send({
      status: 200,
      data: loans,
    });
  }

我该怎么做?任何输入将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试一下:

const data = loans.filter(item => item.queryStatus === queryStatus && item.queryRepaid === queryRepaid);

但是,您可以像这样从数据库查询结果:

return Loans.find({queryStatus: queryStatus, queryRepaid: queryRepaid});