82 lines
2.0 KiB
TypeScript
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
|