/// import { ServerRequest, ServerResponse } from "http"; import { EventEmitter } from "events"; import { Request } from "./request"; import { Response } from "./response"; import { NextFunction, ErrorReason, RequestConstructor, ResponseConstructor } from "./define"; export declare class Context extends EventEmitter { /** 原始ServerRequest对象 */ protected _request: Q; /** 原始ServerResponse对象 */ protected _response: S; /** 用于存储next函数的堆栈 */ protected readonly nextHandleStack: NextFunction[]; /** Request对象的构造函数 */ protected requestConstructor: RequestConstructor; /** Response对象的构造函数 */ protected responseConstructor: ResponseConstructor; /** * 创建Request对象 * * @param req 原始ServerRequest对象 */ protected createRequest(req: ServerRequest): Q; /** * 创建Response对象 * * @param res 原始ServerResponse对象 */ protected createResponse(res: ServerResponse): S; /** * 初始化 * * @param req 原始ServerRequest对象 * @param res 原始ServerResponse对象 */ init(req: ServerRequest, res: ServerResponse): this; /** * 初始化完成 */ inited(): void; /** * 获取Request对象 */ readonly request: Q; /** * 获取Response对象 */ readonly response: S; /** * 转到下一个中间件 * * @param err 出错信息 */ next(err?: ErrorReason): void; /** * next函数堆栈入栈 * * @param next 回调函数 */ pushNextHandle(next: NextFunction): void; /** * next函数出栈 */ popNextHandle(): NextFunction | void; /** * 注册中间件执行出错时的事件监听 * * @param callback 回调函数 */ onError(callback: (err: ErrorReason) => void): void; /** * 注册响应结束时的事件监听 * * @param callback 回调函数 */ onFinish(callback: () => void): void; }