UNPKG

ts-api-core

Version:

Nodejs api framework core

82 lines (81 loc) 3.05 kB
import { Request, Response } from "express-serve-static-core"; import { LogLevel } from '../model/log.leval'; import { RequestData } from '../base/reqest.data'; import { WebServer } from '../server/web.server'; import { ICacheAccess } from '../utils/access/cache.access'; import { IOssAccess } from '../utils/access/oss.access'; import { ClassType } from '../base/type'; import { IHttpAccess } from '../utils/access/http.access'; import { IBaseConfig } from '../base/base.config'; import { IRabbitMQAccess, RabbitMQConfig } from '../utils/access/rabbitmq.access'; /** 请求上下文 */ export declare class RequestContext { /** 请求ID */ get reqId(): string | undefined; /** 租户ID、客户ID */ get tid(): string | undefined; /** 用户ID */ get uid(): string | undefined; /** 设备ID */ get esn(): string | undefined; /** 用户 token */ get token(): string | undefined; /** API 请求定义数据 */ route: RequestData; /** API 请求 Request */ req: Request; /** API 请求 Response */ resp: Response; query?: any | undefined; body?: any | undefined; /** key 不区分大小写的 query */ _query?: any | undefined; /** key 不区分大小写的 body */ _body?: any | undefined; /** 上下文自定义配置信息 */ config?: IBaseConfig; /** 数据库配置 key,配置了多数据库连接时有效,用于指定数据库连接配置,未指定时,使用所属对象的配置 */ dbConfig?: string; /** RabbitMQ 配置,如果不指定,会从全局配置中中获取 */ rabbitMQConfig?: RabbitMQConfig; /** 请求结束时触发 */ release(result?: any | undefined): void; /** 写日志 */ log(level: LogLevel, data?: any | any[]): void; logD(data: any | any[] | undefined): void; logE(data: any | any[] | undefined): void; logI(data: any | any[] | undefined): void; logW(data: any | any[] | undefined): void; /** 记录SQL执行日志,返回日志索引号 */ logSQL(sql: string, values?: any[]): number; /** 通知SQL执行完成 */ notifySqlExecuteFinish(index: number, time: number): void; /** 通知SQL事务执行完成 */ notifySqlTransactionFinish(time: number): void; /** * 当前的 WebServer */ get server(): WebServer | undefined; /** HTTP 客户端对象 */ get http(): IHttpAccess; /** * Radis 缓存对象 */ get cache(): ICacheAccess; /** 阿里云 OSS 对象 */ get oss(): IOssAccess; /** RabbitMQ 对象 */ get rabbitMQ(): IRabbitMQAccess; /** * 获取对象实例 * @param identifier 标识符 * @param args 初始化参数 * @returns */ resolve<T>(identifier: string | ClassType<T>, ...args: any | undefined): T | undefined; /** * 动态注入属性 * @param instance 对象实例 */ resolveInject(instance: any, target?: ClassType<any>): void; }