当前位置: 首页 > 知识库问答 >
问题:

如何获取Express中的完整url?

汤英豪
2023-03-14

假设我的示例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

共有2个答案

万俟招
2023-03-14

您可以使用URL的node.js API并从Express传递url.format()信息,而不是单独将这些东西连接在一起。

示例

var url = require('url');

function fullUrl(req) {
  return url.format({
    protocol: req.protocol,
    host: req.get('host'),
    pathname: req.originalUrl
  });
}
杨曜瑞
2023-03-14

>

  • 协议可作为req.protocol使用。这里有文件

    1. 在express 3.0之前,您可以假定协议为HTTP,除非您看到req.get('X-forwarded-protocol')已设置并具有HTTPS,在这种情况下,您知道这是您的协议

    正如Gopal所指出的,主机来自req.get('host')

    希望您的URL中不需要非标准端口,但是如果您确实需要知道它,那么您可以在应用程序状态中使用它,因为它是您在服务器启动时传递给app.listen的任何端口。但是,对于在非标准端口上进行本地开发的情况,Chrome似乎将端口包含在主机头中,因此req.get('host')返回localhost:3000。因此,至少对于标准端口上的生产站点和直接浏览express应用程序的情况(没有反向代理),host头似乎对URL中的端口做了正确的操作。

    路径来自req.originalurl(thanks@pgrassant)。注这确实包括查询字符串。在req.url和req.originalurl上的文档。与req.URL相比,originalurl可能是正确的值,也可能不是正确的值,这取决于您打算对URL执行的操作。

    将所有这些组合在一起重建绝对URL。

      var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
    

  •  类似资料:
    • 问题内容: 假设我的示例网址是 http://example.com/one/two 我说我有以下路线 值将是。 如何在Express中获取 完整的URL ?例如,在上述情况下,我想收到。 问题答案: 该协议可从下载。这里的文档 在express 3.0之前,除非您看到已设置并具有value 的协议,否则可以假定为该协议,在这种情况下,您知道这是您的协议 主机来自Gopal指示 希望您的URL中不

    • 问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 我使用以下代码来获取完整的URL: 问题在于,我在自己的中使用了一些掩码,因此我们在URL中看到的并不总是文件的真实路径。 我需要的是获取URL,写在URL中的内容,仅此而已-完整的URL。 我需要了解它在Web浏览器的导航栏中的显示方式,而不是服务器上文件的真实路径。 问题答案: 看一下,即 请注意

    • 已经有一个类似的线程,看起来很像,但这里我有一些不同的问题。 我想要完整的URL,其中URL是动态的。我所有的页面都使用一个通用的nunjuk模板。 让我们面对现实吧。假设我有一个URL路径: /blog/one/two/three 值得注意的是,“博客”是静态的,但“一”、“二”和“三”是变量,它们将根据我网站上请求的博客文章而改变。 我使用以下代码通过传递来获取URL:post“但是当我在UR

    • 问题内容: 有没有一种简单的方法可以打印的完整路径? 的 应该打印 问题答案: 使用 readlink :

    • python如何获取完整的os版本 OS 版本: 10.0.19045 暂缺 Build 19045 用了一些办法这能获取:10.0.19045后面的暂缺 暂缺 Build 19045 获取不到 有什么办法获取完整的10.0.19045 暂缺 Build 19045

    • 我想通过连接到另一个url再次解析从解析中获得的值。我怎么修理它? 从scrapy导入蜘蛛从scrapy.selector导入选择器 从堆栈.items导入堆栈项 类StackSpider(Spider):name=“stack”allowed_domains=[“*”]global n#n=1997 start_url=['https://www.melon.com/chart/age/list