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

如何让Express API支持通过URL参数限制返回数据条数?

你的代码没有对URL携带的_limit查询参数做处理,所有请求都会直接返回完整的projects数组,自然无法实现按参数限制返回条数的效果。

你需要在路由处理逻辑中读取_limit参数,对参数做合法性校验后,截取对应长度的数组返回即可,建议用res.json()方法替代res.send()返回JSON格式数据,语义更清晰。

修复后的完整代码如下:

const express = require("express");

const app = express();

const projects = [
  { project: "Challenges_jschallenger.com" },
  { project: "Using-Studio-Ghilis-API-With-JS-Only" },
  { project: "my-portfolio-next" },
  { project: "Youtube-Navbar-2021" },
  { project: "Mana-raWozonWebsite" },
  { project: "Movies-Website" },
  { project: "Add-Remove-Mark-and-Mark-off-With-ReactJS" },
  { project: "My-Portfolio" },
  { project: "Github_Explorer" },
  { project: "MestreALMO.github.io" },
  { project: "Tests-With-useState-useEffect-useRef" },
  { project: "Tic-Tac-Toe-React-in-JS" },
  { project: "ReactJS-with-TypeScript-Template" },
  { project: "Retractable-Accordion" },
];

app.get("/", function (req, res) {
  // 读取查询参数中的_limit,转换为数字
  const limit = Number(req.query._limit);
  // 校验limit是有效正整数时返回对应长度的数组,否则返回全部
  const result = Number.isInteger(limit) && limit > 0 
    ? projects.slice(0, limit) 
    : projects;
  res.json(result);
});

app.listen(3100);

slice方法不会修改原数组,仅返回截取的新数组,符合接口查询的场景。如果传入的_limit大于数组总长度,会直接返回全部数组内容,不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:54:04