You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native安卓真机如何连接本地localhost:3000的Node Express后端

解决React Native真机连接本地Node Express后端的问题

我来帮你搞定这个真机无法连接后端的问题——核心原因是真机没法直接通过localhost或10.0.2.2访问你电脑上的本地服务器,这两个地址是安卓模拟器专属的。咱们一步步来解决:

1. 获取你的电脑本地IP地址(Windows系统)

打开命令提示符(CMD),输入以下命令:

ipconfig

在输出里找到无线局域网适配器 WLAN(Wi-Fi连接时)或者以太网适配器 以太网(有线连接时)下的IPv4地址,比如192.168.1.105,这个就是你的电脑在局域网内的可访问地址。

2. 修改React Native中的API请求地址

把你原代码里的http://10.0.2.2:3000替换成刚才获取的电脑IP,示例修改后的代码:

const send = async() => { 
  const token = await AsyncStorage.getItem('userToken'); 
  fetch("http://192.168.1.105:3000/customer/get-complaints-by-statusID", { 
    method: "post", 
    headers: { 
      Accept: 'application/json', 
      'Content-Type': 'application/json', 
      'Authentication': `Bearer ${token}` 
    }, 
    body: JSON.stringify({ statusID: 2 })
  })
  // 后续的.then/.catch处理逻辑...
}

3. 确保后端Express允许跨域请求

如果你的后端没有配置CORS,真机的请求会被RN的JS引擎拦截。在Express项目中安装并配置CORS:
首先安装依赖:

npm install cors

然后在Express入口文件(比如app.js)中添加配置:

const cors = require('cors');
// 开发环境可以先允许所有来源,生产环境再限制特定域名
app.use(cors());
// 可选:更严格的配置(指定允许的来源)
// app.use(cors({
//   origin: '*', // 或指定真机的访问域名/IP
//   credentials: true
// }));

4. 开放电脑防火墙的3000端口

Windows防火墙可能会阻止外部设备访问你电脑的3000端口,需要手动开放:

  • 打开「Windows Defender防火墙」→「高级设置」
  • 点击「入站规则」→「新建规则」
  • 选择「端口」→ 输入3000→ 允许连接 → 勾选「域」「专用」「公网」(根据你的网络环境调整)
  • 给规则命名(比如"Node Express 3000端口")并保存

5. 确保手机和电脑连接同一个Wi-Fi网络

只有在同一个局域网下,真机才能访问到你电脑的本地IP,这是连接成功的前提!

额外检查点

  • 确认你的Node Express服务器正在正常运行(执行npm start或对应的启动命令)
  • 确认MSSQL数据库允许本地后端访问(因为后端部署在你电脑上,默认配置应该没问题,如果出现数据库连接错误,检查连接字符串是否正确)

这样调整之后,你的React Native真机应该就能和本地后端建立有效连接,完成登录操作了!

内容的提问来源于stack exchange,提问作者Sanduni Fernando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 17:07:32