ts-api-core
Version:
Nodejs api framework core
82 lines (81 loc) • 3.05 kB
TypeScript
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;
}