You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何简化Express路由中重复的查询参数处理代码?

简化Express路由中的重复查询参数处理逻辑

你可以通过定义参数映射关系的方式消除重复代码,核心思路是把查询参数名和对应的数据库字段名做映射,再通过循环统一处理:

router.get('/reports', async (req, res) => {
  // 定义查询参数与数据库字段的映射关系
  const paramMap = {
    y: 'end_year',
    t: 'topic',
    s: 'sector',
    r: 'region',
    src: 'source'
  };

  const filters = {};
  // 循环处理每个映射项
  Object.entries(paramMap).forEach(([queryKey, dbField]) => {
    if (req.query[queryKey]) {
      filters[dbField] = req.query[queryKey].split(',');
    }
  });

  const reports = await Report.find(filters);
});

后续如果需要新增或调整查询参数,只需要在paramMap里添加/修改对应关系即可,不用重复编写相似的if判断逻辑,代码更简洁也更易维护。

内容的提问来源于stack exchange,提问作者Rohan Hari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:01:31