feat: WWJCloud 企业级全栈框架 v0.3.5 完整更新
🚀 核心更新: - ✅ 完善 NestJS 企业级架构设计 - ✅ 优化配置中心和基础设施层 - ✅ 增强第三方服务集成能力 - ✅ 完善多租户架构支持 - 🎯 对标 Java Spring Boot 和 PHP ThinkPHP 📦 新增文件: - wwjcloud-nest 完整框架结构 - Docker 容器化配置 - 管理后台界面 - 数据库迁移脚本 🔑 Key: ebb38b43ec39f355f071294fd1cf9c42
This commit is contained in:
79
wwjcloud-nest/src/common/pipes/pipes.module.ts
Normal file
79
wwjcloud-nest/src/common/pipes/pipes.module.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
import { Module, Global } from '@nestjs/common';
|
||||
import {
|
||||
ValidationPipe,
|
||||
ParseIntPipe,
|
||||
ParseBoolPipe,
|
||||
ParseArrayPipe,
|
||||
ParseUUIDPipe,
|
||||
DefaultValuePipe,
|
||||
} from '@nestjs/common';
|
||||
import { ParseDiyFormPipe } from './parse-diy-form.pipe';
|
||||
|
||||
/**
|
||||
* 管道模块 - 基础设施层
|
||||
* 基于 NestJS 官方内置管道
|
||||
* 参考: https://docs.nestjs.cn/pipes
|
||||
* 对应 Java: @InitBinder + @Valid
|
||||
*
|
||||
* 统一管理所有验证管道,避免重复定义
|
||||
*/
|
||||
@Global()
|
||||
@Module({
|
||||
providers: [
|
||||
// 统一的验证管道配置
|
||||
{
|
||||
provide: 'VALIDATION_PIPE',
|
||||
useValue: new ValidationPipe({
|
||||
whitelist: true, // 自动过滤掉没有装饰器的属性
|
||||
forbidNonWhitelisted: true, // 如果有非白名单属性,抛出错误
|
||||
transform: true, // 自动转换类型
|
||||
transformOptions: {
|
||||
enableImplicitConversion: true, // 启用隐式转换
|
||||
},
|
||||
validateCustomDecorators: true, // 验证自定义装饰器
|
||||
exceptionFactory: (errors) => {
|
||||
// 自定义错误格式
|
||||
const result = errors.map((error) => ({
|
||||
property: error.property,
|
||||
value: error.value,
|
||||
constraints: error.constraints,
|
||||
}));
|
||||
return new Error(JSON.stringify(result));
|
||||
},
|
||||
}),
|
||||
},
|
||||
{
|
||||
provide: 'PARSE_INT_PIPE',
|
||||
useValue: new ParseIntPipe(),
|
||||
},
|
||||
{
|
||||
provide: 'PARSE_BOOL_PIPE',
|
||||
useValue: new ParseBoolPipe(),
|
||||
},
|
||||
{
|
||||
provide: 'PARSE_ARRAY_PIPE',
|
||||
useValue: new ParseArrayPipe({ items: String, separator: ',' }),
|
||||
},
|
||||
{
|
||||
provide: 'PARSE_UUID_PIPE',
|
||||
useValue: new ParseUUIDPipe(),
|
||||
},
|
||||
{
|
||||
provide: 'DEFAULT_VALUE_PIPE',
|
||||
useValue: new DefaultValuePipe(''),
|
||||
},
|
||||
// 业务特定的自定义管道
|
||||
ParseDiyFormPipe,
|
||||
],
|
||||
exports: [
|
||||
'VALIDATION_PIPE',
|
||||
'PARSE_INT_PIPE',
|
||||
'PARSE_BOOL_PIPE',
|
||||
'PARSE_ARRAY_PIPE',
|
||||
'PARSE_UUID_PIPE',
|
||||
'DEFAULT_VALUE_PIPE',
|
||||
// 业务特定的自定义管道
|
||||
ParseDiyFormPipe,
|
||||
],
|
||||
})
|
||||
export class PipesModule {}
|
||||
Reference in New Issue
Block a user