como-validate-ratelimit
v1.4.0
Published
This is a midway component sample
Readme
基于midwayjs 实现的基本项目组件
一、访问限流组件
- 使用示例 在任意类的控制器中使用中件间
RateLimitMiddleware加入即可 - 在任意对外的方法中使用中间件也可以
//管理员控制器
@Controller("AdminUser",{middleware:[RateLimitMiddleware]})
@UseGuard([AdminGuard,RouteGuard])
export class AdminUserController extends BaseController {}- 在配置项中加入限流配置(
config.default.ts)
//限流 以下配置为每秒中单个IP只能通过10个访问 具体情况可根据项目配置
limiter: {
//限流次数
points: (Number(process.env.APP_LIMITER ?? 10)),
//时间 秒
duration: 1
} as IRateLimiterOptions,二、登录守卫组件
- 在控制器中加入代码
@UseGuard([AminGuard])- 在配置项中加入限流配置(
config.default.ts)
HeaderUserKey:{
//管理员请求头的key 从请求头中获取token下标的名称
adminTokenKey?:string
//web端获取请求头的key 从请求头中获取token下标的名称
webTokenKey?:string
//管理员获取名称 从请求头中获取的下标名称
adminUser?:string
//前端用户获取名称 从请求头中获取的下标名称
webUser?:string
}- 继续守卫的基本类 示例
//管理员登录守卫
@Guard()
export class AdminGuard extends AppUserGuard implements IGuard<Context> {
curClient: string = 'admin';
/**
* 实现路由拦截功能
* @param ctx
* @param supplierClz
* @param methodName
* @returns
*/
async canActivate(ctx: Context, supplierClz: new (...args: any[]) => any, methodName: string): Promise<boolean> {
if(!this.userService) {
this.userService = await ctx.requestContext.getAsync(AdminUserService);
}
return super.canActivate(ctx,supplierClz,methodName);
}
}三、后端页面动态渲染组件
1、数据列表渲染组件
//提供以下类
//WebTable WebTableColumn WebTableHeader WebTableConfig WebTablePagination
//提供装饰器
//@TableColumn @SearchColumn
//提供渲染方法拿到列
//this.WebTableColumns(参数是有TableColumn的类) 即可得到需要展示的列
//thsi.WebSearchColumns(参数是有TableColumn的类)2、表单渲染组件
//提供以下类
//WebForm WebFormColumnItem
//提供一个装饰器
//@FormColumn
//提供渲染方法拿到列
//this.WebFormColumns(参数是有TableColumn的类,data:{对象数据},list?:{可选项列表}) 即可得到需要填写的表单四、常用工具类
- 常用工具类
ComoAppUtils提供的方法很多 如格式化数组处理 文本处理 身份证号码处理等等 - 使用示例 更新使用 请查看源码
ComoAppUtils.Ins.Time()五、自定义快速验证组件
//提供以下类
//ComoValidatePipe ComoQuickValidatePipe QuickValidateUtils ComoValidateOccasion ComoValidatorError
//提供一个装饰器
//@ComoValidate
//提供渲染方法拿到列
//this.ApiTransform(验证方法,待验证的数据) 即可得到验证后的数据六、图像处理组件
- 图像处理组件
//提供一个类 是基于sharp包封装后的 ComoAppImage