运行 npm start 时如何从 URL 中删除端口号?

Posted

技术标签:

【中文标题】运行 npm start 时如何从 URL 中删除端口号?【英文标题】:How to remove port number from URL when running npm start? 【发布时间】:2021-10-24 02:28:24 【问题描述】:

我正在开发一个 create-react-app,我想从在我的 api 中运行 npm start 时创建的 URL 中删除端口号。现在,我的启动脚本包含以下内容:

"start": "json-server --host https://my-json-server.typicode.com/vbrambila2/1RM" 

这是我希望我的 api tp 运行的 URL。但是当我运行 npm start 时,它会被启动为:

https://my-json-server.typicode.com/vbrambila2/1RM:3000

我的终端中也出现此错误:

  Resources
  http://https://my-json-server.typicode.com/vbrambila2/1RM:3000/movements

  Home
  http://https://my-json-server.typicode.com/vbrambila2/1RM:3000

Some error occurred Error: getaddrinfo ENOTFOUND https://my-json-server.typicode.com/vbrambila2/1RM
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:69:26) 
  errno: -3008,
  code: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'https://my-json-server.typicode.com/vbrambila2/1RM'

有谁知道我怎样才能让它以我提供的 URL 开始而不添加 :3000?

【问题讨论】:

【参考方案1】:

任何未指定端口的 HTTP URL 都会隐式指定端口 80 (HTTP) 或端口 443 (HTTPS)。例如。

http://example.com => http://example.com:80

https://example.com => https://example.com:443

为避免输入端口号,您应该在端口 443 上提供您的内容(因为您使用的是 HTTPS)。您还没有告诉我们您使用什么框架来托管您的服务器,但通常用于设置端口的 CLI 选项是“-p”或“--port”,尽管您应该先阅读框架的文档页面。

编辑:

根据您的标签,我推断您使用的是json-server,在这种情况下,将-p 443 添加到您的启动命令中应该可以适当地设置端口。

【讨论】:

感谢您的回复!我在启动命令中添加了 -p 443 并得到了相同的响应,但这次是 443 而不是 3000。我更新了我的问题以包含我在运行 npm start 时在终端中遇到的错误。 看来 json-server 正在尝试通过 http 而不是 https 提供服务。我相信解决方案是在主机选项的开头删除 https://,并将端口更改为 80。但是,如果您需要通过 HTTPS 提供服务,我建议您阅读 'github.com/typicode/json-server#https 的 json-server 文档' 这为设置 SSL 提供了一些指导。

以上是关于运行 npm start 时如何从 URL 中删除端口号?的主要内容,如果未能解决你的问题,请参考以下文章

无法运行“npm start”显示错误。如何解决?

如何修复 npm start “无法确定原生 SDK 版本”错误?

如何从 mac 中完全删除 NPM 包?

如何从 URL 响应中删除 OG 元标记值

Visual Studio Code Node.js 在运行 npm start 命令时在 Mac 中给出权限被拒绝错误

如何修复 npm ERR!缺少脚本:从反应开始