【问题标题】:changing the name of localhost web app express?更改 localhost web app express 的名称?
【发布时间】:2016-02-14 08:27:57
【问题描述】:
我正在做一个项目,我需要将项目的名称从 localhost:9000 更改为 someothername:9000,这是在我的开发环境中,而不是在生产环境中。
我得到了项目文件,而那个人(不再在这里)使用了 express.js。我已经搜索并搜索了这个问题的答案,但我无法弄清楚。
那么,是否可以使用 express.js 或更新 gruntfile 将 localhost:9000 的名称更改为 someothername:9000 ?我知道我可以更改计算机上的 localhost 设置,但我需要有一个通过 Web 应用程序出现的别名。
我已经准备好扯掉我的头发了。 :(
【问题讨论】:
标签:
node.js
express
localhost
gruntfile
【解决方案1】:
在开发环境中,添加就足够了
127.0.0.1 testurl.test
在底部
C:\Windows\System32\drivers\etc\hosts
现在将服务器的端口设置为 80(http 的标准端口)
你需要改变
project\bin\www
(ejs 标准第 15 行)
var port = normalizePort(process.env.PORT || '3000');
到
var port = normalizePort(process.env.PORT || '80');
现在,如果您在浏览器中输入 testurl.test,它应该会显示该网站。
这适用于 windows,如果您有 mac 或 linux,只需根据需要更改主机文件。
马吕斯
【解决方案2】:
您无法在 express 中更改它。域名由浏览器使用 OS 系统和 DNS 服务解析。您的快速申请无法解决此问题。在与您的 express 应用程序建立任何连接之前,浏览器会对其进行解析。
您可以编辑本地计算机上的主机文件以将其他名称定义为 localhost 的别名。您编辑主机文件的准确程度取决于您运行的操作系统,因为这是操作系统特定的功能。
回顾一下,这是您在浏览器中请求网页时的正常步骤。
- 用户在浏览器中请求特定的 URL。
- 浏览器从 URL 中解析出域,并使用主机操作系统上基于 TCP 的本地服务请求对该域的 DNS 查找。
- 主机操作系统查看请求的域以查看它是否是它识别的主机名或有缓存条目。
- 如果它识别出主机名或有缓存条目,则对应于该主机名的 IP 地址将返回给浏览器。
- 如果它无法识别主机名,则本地计算机会联系 DNS 服务器以查找 IP 地址并将该 IP 地址返回给浏览器。
- 一旦浏览器获得 IP 地址,它就会在所需端口号上与该 IP 地址建立 TCP 连接。
- 如果 IP 地址与您的 Express 服务器相对应,那么这是您的 Express 服务器第一次参与该过程。