gpt4 book ai didi

node.js - nodejs 表示 : hostname with port from the req object

转载 作者:行者123 更新时间:2023-12-04 12:18:48 25 4
gpt4 key购买 nike

有时我想从我的 Node 应用程序通过邮件发送一个合格的 URL。或者我想设置一个虚拟页面对象的内容。

我在我的部署设置中得到了这样的完整 URL。

'http://' + req.hostname + '/myapp'

但是在开发机器上,这通常会产生:

http://localhost/myapp取而代之的是 http://localhost:3000/myapp

我知道如何获取端口,但我不想使用以下内容:
'http://' + req.hostname + ':' + port + '/myapp'

在代理后面部署时会产生这样的废话。

http://domain.com:3000/myapp

如果应用程序在代理之外运行,是否有一种聪明的方法可以从请求对象中获取带有端口的主机名?

最佳答案

我不确定为什么不推荐使用 Express Request host ,但这是一个安全的代码,可以克服在代理后面/不在代理后面运行 Express 服务器的问题。

const proxyHost = req.headers["x-forwarded-host"];
const host = proxyHost ? proxyHost : req.headers.host;
(我发现最方便的是为涉及重定向的工作流构建“返回”URL,例如:OAuth 2)

关于node.js - nodejs 表示 : hostname with port from the req object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39879532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com