带有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在物理设备上运行的主要内容,如果未能解决你的问题,请参考以下文章

云时代,用对工具就能让云上运维工作事半功倍!

云时代,用对工具就能让云上运维工作事半功倍!

无法在物理 Apple 设备上运行颤振应用程序

Flutter iOS 物理设备错误:Command PhaseScriptExecution failed with a nonzero exit code

在物理设备上测试时出现 Flutter 部署错误::errSecInternalComponent

在物理设备中运行时,Flutter 中的热重载不起作用