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

Node.js中Express带ID参数API调用返回空数组问题排查

问题根因

你遇到的问题是类型不匹配导致的过滤逻辑失效:

  • Express 中通过 req.params.id 获取到的路径参数是字符串类型,调用 /achaar/products/1 时取到的值为字符串 "1"
  • test_data.js 里存储的商品 id 是数字类型,比如 id 为 1 的商品对应的值是数字 1
  • 你使用严格相等运算符 === 做匹配,该运算符会同时校验值和数据类型,两边类型不一致时会直接返回 false,因此 filter 方法返回的结果是空数组。

修复方案

任选以下任意一种方案修改代码即可:

  1. 将路径参数转为数字后再做匹配
// 修改带id的路由里的过滤逻辑
var val = json_data.achaar.filter(function (x) { return x.id === Number(req.params.id) })
  1. 改用非严格相等运算符 ==,该运算符会自动做隐式类型转换
var val = json_data.achaar.filter(function (x) { return x.id == req.params.id })

额外优化提示

你当前的带参路由逻辑只做了控制台打印,没有给请求方返回响应,需要在过滤逻辑后补充 res.json(val),否则请求会一直挂起直到超时。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 18:03:02