更改 URL 的特定参数

Change specific parameter of URL

我已经 node application 并且得到了以下 URL(在 req.header. of express 中)
我需要更改端口号(重定向 url),例如从 7777788888,

我试过解析编码和解码但没有成功,但也许我错过了什么,

我需要使用标准(解析编码和解码)方式,不只是替换...(有效)

知道怎么做吗?我需要在更改此 URL 后将其保持在 完全 相同的格式(在 encod/decode... 之后),如下所示。

http://gr-t6fa45e73.go.grp.corp:54001/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2Fro-d3ma32e85.mo.grp.corp%3A77777%2Flogin%2Fcallback&client_id=zs6.node

如何使用url

var URL ="http://gr-t6fa45e73.go.grp.corp:54001/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2Fro-d3ma32e85.mo.grp.corp%3A77777%2Flogin%2Fcallback&client_id=zs6.node";

var parts = URL.split("redirect_uri="),    
decoded = decodeURIComponent(parts[1])),
red = url.parse(decoded);
red.port=88888;
URL = parts[0]+"redirect_uri="+encodeURIComponent(url.format(red));

更新 使用此版本 URI.js

我使用 .build 而不是 .format。

DEMO

结果:

http://gr-t6fa45e73.go.grp.corp:54001/oauth/authorize?response_type=code&redirect_uri=http%3A%2F%2Fro-d3ma32e85.mo.grp.corp%3A88888%2Flogin%2Fcallback%26client_id%3Dzs6.node