2024-09-08 23:46:15 +08:00

82 lines
2.0 KiB
TypeScript

import express from 'express'
const app = express()
const router = express.Router();
import config from "../config/const";
const BaseApi = process.env.REMOTE_API ?? config.RemoteApi;
/**
* 解决跨域
*/
const cors = (req, res, next) => {
//设置允许跨域的域名,*代表允许任意域名跨域
res.header("Access-Control-Allow-Origin", "*");
//允许的header类型
res.header("Access-Control-Allow-Headers", "*");
res.header("Access-Control-Allow-Credentials", true);
//跨域允许的请求方式
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("Content-Type", "application/json;charset=utf-8")
if (req.method.toLowerCase() === 'options')
res.sendStatus(200); //让options尝试请求快速结束
else
next();
}
//添加空路由占位符,后期动态添加路由用
// const arr = ["GET","POST","DELETE","PUT","HEAD","OPTIONS"];
// arr.some((method)=>{
// let m = lowerCase(method);
// router[m]("/*", (req,res,next)=>{
// next();
// })
// });
//示范
app.get('/message', (req, res) => {
res.send('这是来自node服务端的信息')
})
app.post('/message', (req, res) => {
if (req) {
res.send(req + '--来自node')
}
})
// 引入mock
import mocks from "../../renderer/mock/index";
import {lowerCase} from "lodash";
for (let i in mocks) {
let mocker = mocks[i];
mocker.forEach(mock => {
// console.log(BaseApi+mock.url);
let api = BaseApi + mock.url;
let callback = function (req, res) {
// console.log(req.params);
//{userId:'2'}
if (Object.keys(req.params).length > 0) {
// console.log(mock.body)
let data = mock.body({params: req.params});
// console.log(data)
res.send(data);
} else {
let data = mock.body
res.send(data);
}
}
/**
* 请求类型 ["GET","POST","DELETE","PUT","HEAD","OPTIONS",……];
*/
let methods = mock.method;
methods.some((method) => {
let m = lowerCase(method);
router[m](api, callback)
});
});
}
app.use("/", cors, router);
export default app