petsHero-AI/scripts/dev_proxy.js
2026-03-09 11:41:49 +08:00

52 lines
1.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
/**
* 本地转发代理:当手机无法直连 pre-ai.petsheroai.xyz 时使用
* 电脑能访问域名,手机连电脑同一 WiFi通过此代理转发请求
*
* 使用:
* 1. 手机和电脑连同一 WiFi
* 2. 运行: node scripts/dev_proxy.js
* 3. 在 api_config.dart 中设置 debugBaseUrlOverride = 'http://<电脑IP>:8010'
* 4. 手机运行 app
*
* 获取电脑 IP: ifconfig (Mac/Linux) 或 ipconfig (Windows)
*/
const http = require('http');
const https = require('https');
const TARGET = 'https://pre-ai.petsheroai.xyz';
const PORT = 8010;
const server = http.createServer((req, res) => {
const url = TARGET + req.url;
console.log(`[${new Date().toISOString()}] ${req.method} ${req.url} -> ${url}`);
const options = {
hostname: 'pre-ai.petsheroai.xyz',
port: 443,
path: req.url,
method: req.method,
headers: { ...req.headers, host: 'pre-ai.petsheroai.xyz' },
};
const proxy = https.request(options, (proxyRes) => {
res.writeHead(proxyRes.statusCode, proxyRes.headers);
proxyRes.pipe(res);
});
proxy.on('error', (e) => {
console.error('Proxy error:', e.message);
res.writeHead(502);
res.end('Proxy error: ' + e.message);
});
req.pipe(proxy);
});
server.listen(PORT, '0.0.0.0', () => {
console.log(`Dev proxy listening on http://0.0.0.0:${PORT}`);
console.log(`Forwarding to ${TARGET}`);
console.log('Set debugBaseUrlOverride = "http://<YOUR_IP>:8010" in api_config.dart');
});