56 lines
1.7 KiB
TypeScript
56 lines
1.7 KiB
TypeScript
import {Application, Request, Response} from "express";
|
|
import {RouteHandleFunction, RouteHandleFunctionParam} from "../core/types";
|
|
import {home} from "./home";
|
|
import {appList, reportToServer, appEvent, eventData} from "./reportor";
|
|
import {decodeUserToken, getUserInfo, loginHandler} from "./user";
|
|
|
|
const excludes = [
|
|
'/home',
|
|
'/api/report',
|
|
'/api/user/login',
|
|
]
|
|
|
|
//
|
|
function createRoute(handler: RouteHandleFunction) {
|
|
return (req: Request, res: Response<any, Record<string, any>>) => {
|
|
// console.log('params', req.headers)
|
|
const params = {
|
|
path: req.path,
|
|
param: req.params,
|
|
query: req.query,
|
|
body: req.body,
|
|
method: req.method,
|
|
headers: req.headers,
|
|
res,
|
|
req
|
|
};
|
|
const path = req.path;
|
|
console.log('request path:', path)
|
|
if (excludes.includes(path)) {
|
|
return handler(params);
|
|
}
|
|
const token = req.headers.authorization
|
|
if (!token) {
|
|
res.send({code: 403, message: '请先登录'})
|
|
return;
|
|
}
|
|
decodeUserToken(token).then(user => {
|
|
handler({
|
|
...params,
|
|
user: typeof (user) == "string" ? JSON.parse(user) : user
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
// 初始化路由
|
|
export function initRoutes(app: Application) {
|
|
app.get('/home', createRoute(home))
|
|
app.all('/api/report', createRoute(reportToServer))
|
|
app.all('/api/app/list', createRoute(appList))
|
|
app.all('/api/app/event', createRoute(appEvent))
|
|
app.all('/api/app/event-data', createRoute(eventData))
|
|
app.all('/api/user/login', createRoute(loginHandler))
|
|
app.all('/api/user/info', createRoute(getUserInfo))
|
|
}
|