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

原生Node.js如何分离GET请求URL的路径与查询参数

原生Node.js提取URL纯路径实现方案

目标:从URL http://www.localhost:8080/api/numbers/prime?amount=13 中无第三方依赖提取纯路径部分 api/numbers/prime。

直接使用Node.js内置的URL解析能力即可实现,不需要安装任何外部包。

推荐写法(支持Node.js 10.0及以上版本)

当前所有维护期内的Node.js版本都全局支持WHATWG标准的URL构造函数,无需引入额外模块,代码如下:

const inputUrl = 'http://www.localhost:8080/api/numbers/prime?amount=13';
// 解析URL
const urlObj = new URL(inputUrl);
// 取出路径部分,移除开头的斜杠即为目标结果
const purePath = urlObj.pathname.slice(1);

console.log(purePath) // 输出 api/numbers/prime

这里用slice(1)比正则替换性能更好,效果完全一致,因为标准URL解析返回的pathname一定是以/开头的。

低版本Node.js兼容写法

如果运行环境是Node.js 10以下的旧版本,可以引入Node.js内置的url模块使用legacy解析API:

const url = require('url');
const inputUrl = 'http://www.localhost:8080/api/numbers/prime?amount=13';
const urlObj = url.parse(inputUrl);
const purePath = urlObj.pathname.slice(1);

实现说明

  • 两种写法都完全不依赖第三方包,所有能力都是Node.js运行时原生提供
  • 解析逻辑会自动忽略URL的协议、域名、端口、查询参数、哈希锚点等无关部分,只会提取路径内容
  • 即使后续查询参数变化、端口修改,这段逻辑都可以稳定提取到正确的路径值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:42:16