无需ngrok或localtunnel,能否在Expo应用中连接本地服务器?
在Expo应用中连接本地服务器(无需线上托管)
当然可行,只要你的Expo设备和本地服务器处于同一局域网,就能直接实现连接,具体操作步骤如下:
1. 获取本地服务器的局域网IP地址
- Windows:打开命令提示符,输入
ipconfig,找到「IPv4地址」(示例格式:192.168.1.100) - macOS/Linux:打开终端,输入
ifconfig或ip addr,找到对应网络接口下的局域网IP(通常在en0或wlan0条目下)
2. 配置本地服务器允许跨域访问
如果你的后端是Node.js/Express框架,需安装并启用跨域中间件:
const cors = require('cors'); app.use(cors());
其他后端框架也需开启跨域支持,否则Expo应用会被同源策略拦截请求。
3. 在Expo应用中使用局域网IP发起请求
不要使用 localhost 或 127.0.0.1(这类地址只会指向设备自身),改用获取到的局域网IP拼接服务器端口和接口路径,示例代码:
fetch('http://192.168.1.100:3000/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
4. 确保设备处于同一网络环境
- 真机测试:手机和运行服务器的电脑必须连接同一个WiFi网络
- 模拟器测试:多数情况下可直接用
localhost,若出现连接问题,建议替换为局域网IP
内容的提问来源于stack exchange,提问作者Xibot Moon
相关产品推荐
相关产品推荐

