带有flutter项目的Nodejs在物理设备上运行
Posted
技术标签:
【中文标题】带有flutter项目的Nodejs在物理设备上运行【英文标题】:Nodejs with flutter project run on physical device 【发布时间】:2021-07-08 09:18:48 【问题描述】:我有一个关于 nodejs 的 API 和一个颤振应用程序。我想运行我的 Flutter 应用程序并访问 API,但我不知道正确的 ip。
nodejs 在 localhost:3000 上运行,并且 localhost:3000 也在我的项目中,我无权访问。
知道如何解决并获得访问权限吗?
非常感谢!
【问题讨论】:
【参考方案1】:您需要使用您的 IPV4 地址而不是 localhost。
所以来自localhost:3000
=> 192.161.1.100:3000
可以通过终端使用命令找到您的地址:ifconfig
(在 mac/linux 上)
或通过 cmd:ipconfig
(在 Windows 上)
...
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
...
inet 192.161.1.100 netmask 0xffffff00 broadcast 192.168.43.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect
status: active
...
【讨论】:
在 Windows 机器上是ipconfig
。
所以我让服务器(API)在本地主机上运行,并在我的程序上设置 IPV4(无线),所有这些都使用相同的端口(3000)? ?
你在本地主机上运行你的服务器。您的物理设备连接到您的计算机,但无法访问 localhost,它需要使用您的 wifi IP 地址
你的意思是使用wifi IPv4地址?我在项目代码中使用了它,但也没有用。我是否也应该将 wifi Ipv4 用于 API 服务器?我也试过了,但什么也没有……【参考方案2】:
我认为这是最简单的方法。例如,如果您的 node
服务器在端口 3000
上运行,请在您的终端中执行此操作:
adb reverse tcp:3000 tcp:3000
现在您可以从物理设备访问在localhost
上运行的node
服务器。
【讨论】:
它使端口3000
上的localhost
在您的手机上可用。
所以我应该同时编写(API 服务器和 Flutter 项目)本地主机,并且反向本地主机将适用于我的设备?
是的。但请记住,您必须将运行服务器的端口放入命令中。因此,如果您使用端口5000
,它将如下所示:adb reverse tcp:5000 tcp:5000
。
是的,我使用的是 3000,所以没关系。谢谢!我写道,反向是当您进行端口转发时..我没有进行任何端口转发,所以我将如何反向..也许是默认情况下?还有命令 adb reverse tcp:3000 tcp:3000 现在当我的手机尝试访问 localhost 时会怎样?很抱歉有很多问题,但我正在努力理解这个逻辑。
不幸的是,我不确定它在 adb
内部是如何工作的。但是,你可以在谷歌上搜索它,但你不需要知道它是如何工作的! :) 如果此答案对您有所帮助,请考虑单击绿色复选标记将其标记为正确。以上是关于带有flutter项目的Nodejs在物理设备上运行的主要内容,如果未能解决你的问题,请参考以下文章
Flutter iOS 物理设备错误:Command PhaseScriptExecution failed with a nonzero exit code