运行 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 “无法确定原生 SDK 版本”错误?
Visual Studio Code Node.js 在运行 npm start 命令时在 Mac 中给出权限被拒绝错误