优化 API中data的类型声明
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { API } from "@lib/API/API";
|
||||
import { API, RequestData } from "@lib/API/API";
|
||||
import MountIP, { MountIPRequestData } from "@lib/APIMiddleware/MountIP";
|
||||
import MountUserAgent, { MountUserAgentRequestDate } from "@lib/APIMiddleware/MountUserAgent";
|
||||
import Unbind from "@lib/APIMiddleware/Unbind";
|
||||
@@ -10,7 +10,7 @@ class GetTest extends API {
|
||||
super('GET', '/test', MountIP, MountUserAgent, Unbind);
|
||||
}
|
||||
|
||||
public async onRequset(data: MountIPRequestData | MountUserAgentRequestDate, res: Response): Promise<void> {
|
||||
public async onRequset(data: MountIPRequestData & MountUserAgentRequestDate, res: Response): Promise<void> {
|
||||
this.logger.info(`request ip: ${data._ip} useragent: ${data._userAgent}`)
|
||||
res.json(ServerStdResponse.OK);
|
||||
}
|
||||
|
||||
@@ -5,6 +5,10 @@ interface MiddlewareFunction {
|
||||
(req: Request, res: Response, next: NextFunction): void;
|
||||
}
|
||||
|
||||
interface RequestData {
|
||||
[key: string]: any
|
||||
}
|
||||
|
||||
abstract class API {
|
||||
|
||||
protected logger: Logger;
|
||||
@@ -21,8 +25,8 @@ abstract class API {
|
||||
}
|
||||
|
||||
// to override
|
||||
public abstract onRequset(data: any, res: Response): Promise<void>;
|
||||
public abstract onRequset(data: RequestData, res: Response): Promise<void>;
|
||||
}
|
||||
|
||||
export { API };
|
||||
export type { MiddlewareFunction };
|
||||
export type { MiddlewareFunction, RequestData };
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Request, Response, NextFunction } from "express"
|
||||
import Logger from "@lib/Logger/Logger";
|
||||
import { RequestData } from "@lib/API/API";
|
||||
const logger = new Logger('API', 'Middleware', 'MountIP');
|
||||
|
||||
// 挂载IP,将请求的ip地址挂载到data._ip属性下
|
||||
@@ -20,9 +21,8 @@ let MountIP = (req: Request, res: Response, next: NextFunction) => {
|
||||
export default MountIP;
|
||||
|
||||
|
||||
interface MountIPRequestData {
|
||||
_ip: string,
|
||||
[key: string | number | symbol]: any
|
||||
interface MountIPRequestData extends RequestData {
|
||||
_ip: string;
|
||||
}
|
||||
|
||||
export type { MountIPRequestData };
|
||||
@@ -1,5 +1,6 @@
|
||||
import { Request, Response, NextFunction } from "express"
|
||||
import Logger from "@lib/Logger/Logger";
|
||||
import { RequestData } from "@lib/API/API";
|
||||
const logger = new Logger('API', 'Middleware', 'MountUserAgent')
|
||||
|
||||
// 挂载用户代理,将请求的请求代理挂载到data._userAgent属性下
|
||||
@@ -12,9 +13,8 @@ let MountUserAgent = (req: Request, res: Response, next: NextFunction) => {
|
||||
export default MountUserAgent;
|
||||
|
||||
|
||||
interface MountUserAgentRequestDate {
|
||||
interface MountUserAgentRequestDate extends RequestData {
|
||||
_userAgent: string,
|
||||
[key: string | number | symbol]: any
|
||||
}
|
||||
|
||||
export type { MountUserAgentRequestDate };
|
||||
Reference in New Issue
Block a user