📅  最后修改于: 2023-12-03 14:52:17.376000             🧑  作者: Mango
在实现 Web 应用程序时,获取 URL 是一项非常重要的任务。在 ExpressJS 中,获取 URL 非常简单,可以使用 req 对象的 protocol
,hostname
和 originalUrl
属性来获取 URL 的各个部分,然后将它们组合成完整的 URL。下面是一些示例代码,展示了如何在 ExpressJS 中获取完整的 URL。
在 ExpressJS 中,使用 req 对象的 protocol
,hostname
和 originalUrl
属性来获取 URL 的各个部分,然后将它们组合成完整的 URL。下面是一些示例代码,展示了如何在 ExpressJS 中获取完整的 URL。
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const fullUrl = req.protocol + '://' + req.hostname + req.originalUrl;
res.send(fullUrl);
});
app.listen(3000);
const express = require('express');
const app = express();
app.get('/', (req, res) => {
const fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
res.send(fullUrl);
});
app.listen(3000);
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
const fullUrl = req.protocol + '://' + req.get('host') + req.baseUrl;
res.send(fullUrl);
});
app.listen(3000);
req.protocol 表示请求所使用的协议,通常是 HTTP 或 HTTPS。
req.hostname 表示请求的主机名,例如 "example.com"。
注意:req.hostname 只包含主机名而不包含端口号。
req.originalUrl 表示请求的完整 URL,包含主机名、路径和查询字符串。
例如,如果请求的 URL 为 "https://example.com/users?name=john",那么 req.originalUrl 的值为 "/users?name=john"。
req.get('host') 表示请求的主机名和端口号,例如 "example.com:3000"。
req.baseUrl 表示 ExpressJS 应用程序的基础路径,例如 "/users"。
注意:res.sendFile() 和 res.json() 函数会自动计算出正确的基础路径,因此不需要显式地使用 req.baseUrl。
在 ExpressJS 中获取 URL 可以使用 req 对象的 protocol
,hostname
和 originalUrl
属性来获取 URL 的各个部分,然后将它们组合成完整的 URL。根据具体情况选择使用哪个属性来拼接 URL。