feat: update
This commit is contained in:
59
scripts/proxy-server.js
Normal file
59
scripts/proxy-server.js
Normal file
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* 开发环境代理服务器
|
||||
* 用于解决跨域问题和统一 API 请求
|
||||
*/
|
||||
|
||||
const express = require('express');
|
||||
const { createProxyMiddleware } = require('http-proxy-middleware');
|
||||
|
||||
const app = express();
|
||||
const PORT = 8080;
|
||||
|
||||
// 目标 API 服务器地址
|
||||
const API_TARGET = process.env.API_TARGET || 'http://localhost:3000';
|
||||
|
||||
// 配置代理
|
||||
app.use(
|
||||
'/api',
|
||||
createProxyMiddleware({
|
||||
target: API_TARGET,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/api': '/api', // 保持路径不变,或者根据需要重写
|
||||
},
|
||||
onProxyReq: (proxyReq, req, res) => {
|
||||
console.log(`[Proxy] ${req.method} ${req.url} → ${API_TARGET}${req.url}`);
|
||||
},
|
||||
onProxyRes: (proxyRes, req, res) => {
|
||||
console.log(`[Proxy] ${req.method} ${req.url} ← ${proxyRes.statusCode}`);
|
||||
},
|
||||
onError: (err, req, res) => {
|
||||
console.error('[Proxy Error]', err.message);
|
||||
res.status(500).json({
|
||||
error: 'Proxy Error',
|
||||
message: err.message,
|
||||
});
|
||||
},
|
||||
})
|
||||
);
|
||||
|
||||
// 健康检查
|
||||
app.get('/health', (req, res) => {
|
||||
res.json({
|
||||
status: 'ok',
|
||||
proxy: API_TARGET,
|
||||
timestamp: new Date().toISOString(),
|
||||
});
|
||||
});
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.log(`
|
||||
╔════════════════════════════════════════════════════════╗
|
||||
║ 🚀 Proxy Server Running ║
|
||||
╠════════════════════════════════════════════════════════╣
|
||||
║ Local: http://localhost:${PORT} ║
|
||||
║ Target: ${API_TARGET.padEnd(40)} ║
|
||||
║ Health: http://localhost:${PORT}/health ║
|
||||
╚════════════════════════════════════════════════════════╝
|
||||
`);
|
||||
});
|
||||
Reference in New Issue
Block a user