如何*同时*将 ngrok 用于后端和前端?

Posted

技术标签:

【中文标题】如何*同时*将 ngrok 用于后端和前端?【英文标题】:How can I use ngrok for backend and frontend *at the same time*? 【发布时间】:2020-03-05 02:26:55 【问题描述】:

我有一个想要在移动设备中测试的 react 应用,但是 Chrome 或 Firefox 中的移动开发工具还不够。

后端在localhost:5000 上运行,前端在localhost:3000 上运行。

如果我同时运行ngrok http 3000ngrok http 5000 并使用ngrok http 3000 提供的链接,我可以访问我的前端,但是(可以理解)它可以与我的后端对话,因为它正在寻找localhost: 5000 服务器相对于我的手机,而不是查看ngrok http 5000 提供的链接。

我的问题是:

    配置我的应用和 ngrok 以便我可以同时在我的计算机和手机上测试我的应用的最佳方式是什么?

    有没有更好的方法可以完全不使用ngrok

谢谢

【问题讨论】:

【参考方案1】:

在您从 API 服务器进行配置的地方形成您的前端,将其替换为您的后端正在运行的 Ngrok URL,然后 Ngrok 您的前端,然后您可以从任何地方访问您的前端

【讨论】:

【参考方案2】:

首先,您可以从您的开发服务器配置代理到后端。这将使您的前端能够从任何位置通过相对 URL(例如 /api 而不是 localhost:5000/api)访问后端。为了做到这一点,您应该将"proxy": "http://localhost:5000" 添加到您的package.json,然后确保您的后端请求与您的前端中的内容不匹配,最好使用前缀。更多详情here.

鉴于您仅在本地网络中测试应用程序,因此您不需要 ngrok,因为您可以通过手机的本地 IP 访问您的开发机器。要找到它,请运行 ifconfigipconfig 并在手机中输入返回的本地 IP(通常类似于 192.168.X.X),而不是 ngrok 提供的域。

【讨论】:

以上是关于如何*同时*将 ngrok 用于后端和前端?的主要内容,如果未能解决你的问题,请参考以下文章

带有JavaScript后端和前端的多人游戏。什么是最佳做法?

基于 Laravel API 后端和 Vuejs 前端构建

在同一个域上分离后端和前端应用程序?

用于后端和前端的Angular 2 + Node JS

如果它们是分开的,如何部署后端和前端项目?

如何将 Docusign 的电子签名 API 与 .NET 后端和 Angular + Devextreme 前端集成?