主要逻辑页面
const express = require('express');
const path = require('path');
const compression = require('compression');
const request = require('request');
const app = express();
const bodyParser =require("body-parser");
// 一定要写到静态资源托管之前
app.use(compression());
app.use(express.static(path.join(__dirname, 'static')));
//解析body参数
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
// static里面放是打包后的静态文件
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname, 'static', 'index.html'));
});
// 匹配路由导航
app.get('/aigc/*', function (req, res) {
res.sendFile(path.join(__dirname, 'static', 'index.html'));
});
// request模块 实现接口请求(请求实际接口路由)
const requestRequest = (req, zres) => {
var options = {
"url": "https://sit.rabbitpre.com.cn" + req.url,
"method": req.method,
"headers": {
"content-type": "application/json",
"cookie": req.headers.cookie,
},
"body": JSON.stringify(req.body),
"query": req.query,
};
const myHttp = new Promise((resolve, reject) => {
request (options,(err, res, body) => {
if (err) {
reject(err);
} else {
resolve(body);
}
});
});
myHttp.then((res, err) => {
zres.send(res);
}).catch ((err) => {
console.error('\x1B[31m%s\x1B[0m', err);
})
}
// 拦截接口路由,代理到实际接口地址
app.get('/api/*', requestRequest);
app.post('/api/*', requestRequest);
app.listen(9000, () => {
console.log('服务启动成功:localhost:9000')
});