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>) => { // 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)) }