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

如何在Node.js中从JSON文件根据请求uid参数获取指定数据集

代码修改方案

修改后的完整代码

const express = require('express')
const app = express()
const port = 8080
// 注意:如果你的JSON文件名为user.json,这里需要改成require('./user.json')
const users = require('./users');

// 同时支持 /user/1 和 /user/uid=1 两种请求格式
app.get('/user/:uid', (req, res) => {
  // 提取uid参数,处理uid=前缀的情况
  const uidStr = req.params.uid.replace('uid=', '');
  // 转换为数字类型,和JSON文件中的id字段类型对齐
  const uid = parseInt(uidStr, 10);
  // 遍历数组匹配对应id的用户
  const targetUser = users.find(user => user.id === uid);
  
  if (targetUser) {
    // express内置json方法,自动序列化对象返回,无需手动转字符串
    res.json(targetUser);
  } else {
    // 无匹配用户时返回404提示
    res.status(404).json({msg: '未找到对应用户'});
  }
});

app.listen(port, () => {
  console.log(`app listening at http://localhost:${port}`)
});

核心修改点说明

  • 修正了原代码中路由回调函数开头多余的s语法错误
  • 新增参数解析逻辑:兼容uid=xxx格式的传参,同时把字符串类型的参数转成数字,和user.json里的id类型对齐
  • 新增匹配逻辑:用数组的find方法遍历users数组,匹配id和传入uid一致的用户条目
  • 新增异常处理:匹配不到用户时返回404状态码和提示信息,避免返回空内容
  • 优化返回逻辑:直接使用express内置的res.json()方法返回对象,无需手动调用JSON.stringify,代码更简洁

验证方法

启动服务后访问以下地址均可返回id为1的用户数据:

  • http://localhost:8080/user/1
  • http://localhost:8080/user/uid=1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 16:30:03