Express 在计算机上开发后端并在真正的移动设备上测试?

Express 在计算机上开发后端并在真正的移动设备上测试?,express,url,server,proxy,expo,Express,Url,Server,Proxy,Expo,我正在开发一个后端,其中包含一些我想在iOS应用程序中使用的路由,使用Expo和react native开发应用程序。 因此,在后端和应用程序的开发模式中,后端都在http://127.0.0.1:80/,当应用程序在iOS Emulator上时,它工作得很好,但当我在真实设备上启动应用程序时,我无法使用相同的url连接到后端。 我应该使用什么url?或者我会错过哪种环境? 这是我启动服务器的代码 const app = require('./app'); app.set('port', pro

我正在开发一个后端,其中包含一些我想在iOS应用程序中使用的路由,使用Expo和react native开发应用程序。 因此,在后端和应用程序的开发模式中,后端都在http://127.0.0.1:80/,当应用程序在iOS Emulator上时,它工作得很好,但当我在真实设备上启动应用程序时,我无法使用相同的url连接到后端。 我应该使用什么url?或者我会错过哪种环境? 这是我启动服务器的代码

const app = require('./app');
app.set('port', process.env.PORT || 80);
const server = app.listen(app.get('port'), () => {
  console.log(`Express running → PORT ${server.address().port}`);
});

如果您有两个不同的设备,Localhost将无法工作。相反,尝试将两者连接到同一wifi网络,并使用您电脑的ipv4地址,在cmd中找到ipconfig,而不是“127.0.0.1”。前提是你的防火墙不会阻止连接。

所以多亏了@Mukeyii,我至少找到了Mac和iPhone的答案

以下是步骤:

在你的节点应用程序上,你需要提供你将监听该应用程序的端口和ip,例如: 奇怪的是,我想把127.0.0.1的ip,但它没有工作。0.0.0.0对我有用,所以我放了那个

在/private/etc/hosts文件中,添加行0.0.0 any.url.you.wish,并在计算机上的浏览器上保存和测试,当您启动应用程序开发模式并键入url any.url.you.wish时,您可以继续应用程序

打开它,让它安装它想要安装的东西

在SquidMan>首选项中,在常规选项卡中为我设置端口:80

在“客户端”选项卡上,设置新ip:iOS移动设备的ip地址。要获得它,您需要单击WiFi连接网络前面的i

在Template选项卡上,在http_access deny to_localhost一行添加注释,并添加以下两行:

保存首选项并启动Squid 在系统首选项>网络中获取Mac的IP地址 在第5节所述相同视图底部的iPhone端口+ip上配置代理。
就这样!阅读此url中的更多信息:

我如何告诉express使用我的ipv4而不是127.0.0.1或localhost?因为我刚刚尝试过:假设我的ipv4是123.456.789.10,我想访问http://123.456.789.10:80/ 但它并不存在……看看这个:谢谢,这篇文章实际上对我的情况很有帮助!我会写下详细的答案,以防有人来这里寻找快速解决方案不幸的是,我在下面写的解决方案对我不起作用:我正在使用Expo的react native项目,它正在使用我的计算机IP和端口19000在我的iPhone上启动应用程序,如果我使用端口80配置代理,后端正在工作,但不再是expo应用程序。。。
const app = require('./app'); // app is made with express.js
app.set('port', 80);
const server = app.listen(app.get('port'), '0.0.0.0', () => {
  console.log(`Express running → PORT ${server.address().port}`);
});
# hosts file
hosts_file /private/etc/hosts