假设我的示例URL是

http://example.com/one/two

我说我有以下路线

app.get('/one/two', function (req, res) {
    var url = req.url;
}

url的值是/one/two。

如何在Express中获得完整的URL ? 例如,在上面的情况下,我想收到http://example.com/one/two。


当前回答

我的代码是这样的,

params['host_url'] = req.protocol + '://' + req.headers.host + req.url;

其他回答

你可以从req of express得到完整的url。

function fetchPages(req, res, next) {

    let fullUrl = req.headers.host + req.originalUrl;
    console.log("full url ==> ",fullUrl);
}

我的代码是这样的,

params['host_url'] = req.protocol + '://' + req.headers.host + req.url;

你需要使用req.headers.host + req.url来构造它。当然,如果你是在不同的端口,你得到的想法;-)

你可以结合req。协议,要求。主机名和req.originalUrl。请注意要求。主机名,而不是请求。Host或req.get(“Host”),这是可行的,但更难阅读。

const completeUrl = `${req.protocol}://${req.hostname}${req.originalUrl}`;

用这个,

var url = req.headers.host + '/' + req.url;