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

在Node.js+Express中获取URL参数遇到问题求助

解决Express中获取URL查询参数的问题

嗨,我来帮你搞定这个参数获取的问题~ 你提到的req.param.var_name确实已经被废弃了,在Express 4.x及以后的版本里,获取URL里?后面的查询参数,正确的姿势是用req.query对象。

具体实现代码

你可以这样写你的路由处理逻辑:

const express = require('express');
const app = express();

// 处理/testParam路径的GET请求
app.get('/testParam', (req, res) => {
  // 从req.query里直接取出id和token
  const id = req.query.id;
  const token = req.query.token;

  // 可以打印出来验证一下
  console.log('获取到的id:', id);
  console.log('获取到的token:', token);

  // 返回给客户端看结果
  res.send(`成功获取参数:id=${id},token=${token}`);
});

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

为什么之前的方法不行?

Express在4.x版本后就废弃了req.param()相关方法,现在按照参数类型分三种获取方式:

  • req.query:用于获取URL中?后面的查询参数(就是你现在的场景:?id=4&token=sdfa3)
  • req.params:用于获取路由中的动态参数,比如如果你的路由是/testParam/:id,访问/testParam/4时,用req.params.id就能拿到4
  • req.body:用于获取POST请求中提交的表单或JSON数据(需要提前配置express.json()或express.urlencoded()中间件)

版本兼容性说明

你用的Node.js 8.4和9.4版本,搭配的Express肯定是4.x以上(毕竟Node.js 8.x对应Express 4.x是主流组合),所以上面的方法完全适用,不用担心版本问题。

现在启动你的服务,访问http://localhost:3000/testParam?id=4&token=sdfa3,就能正确拿到id和token的值啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:37:17