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

客户端在/article/:id路由时,如何在Express中获取GET请求路由参数?

在Express中从GET请求获取路由参数的方法

嘿,别慌!我当初刚上手Express的时候也在这卡过一会儿,其实获取路由参数真的很直接,结合你说的/article/:id场景,我给你一步步讲清楚:

核心方法:使用req.params对象

Express会自动把路由中用:xxx定义的占位参数解析到req.params对象里,你直接取值就行,完全不用复杂的配置。

1. 服务器端路由配置示例

先在你的Express服务器上配置对应API路由,比如你要接收带文章ID的请求,可以这么写:

// 导入Express并创建实例(如果还没初始化的话)
const express = require('express');
const app = express();

// 配置带路由参数的GET接口
app.get('/api/article/:id', (req, res) => {
  // 从req.params里取出id参数
  const articleId = req.params.id;
  
  // 这里可以根据id做你的业务逻辑,比如查询数据库
  // 示例:const targetArticle = await ArticleModel.findById(articleId);
  
  // 返回响应给客户端
  res.json({
    status: 'success',
    data: {
      articleId: articleId,
      message: `接收到文章ID为${articleId}的请求`
    }
  });
});

// 启动服务器
app.listen(3000, () => {
  console.log('服务器运行在http://localhost:3000');
});

2. 客户端发起请求的示例

你提到客户端在/article/:id路由下,那可以先从当前页面的URL里提取出这个id,再拼到API请求路径里:

// 假设当前页面URL是 http://yourdomain/article/123
// 从路径中提取文章ID
const pathSegments = window.location.pathname.split('/');
const currentArticleId = pathSegments[pathSegments.length - 1]; // 这里拿到的是'123'

// 发起GET请求到服务器API
fetch(`/api/article/${currentArticleId}`)
  .then(response => response.json())
  .then(result => {
    console.log('服务器返回的数据:', result);
    // 这里处理返回的业务数据
  })
  .catch(err => console.error('请求出错:', err));

额外注意事项

  • 如果你的路由有多个参数,比如/api/article/:id/comments/:commentId,那req.params里会同时包含id和commentId两个属性,直接用req.params.id、req.params.commentId就能获取。
  • req.params里的参数默认都是字符串类型,如果需要数字类型,记得手动转换,比如const articleId = parseInt(req.params.id, 10);。
  • 一定要确保服务器路由和客户端请求的URL路径完全匹配,比如服务器是/api/article/:id,客户端就别写成/api/articles/:id(多了个s),这种小细节很容易踩坑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:31:35