我有以下功能,需要获取以下参数
try {
await setData(generator.eventType, generator.eventVersion, generator.uri, ms.data.data.result.name, generator.app)
} catch (error) {
logger.error("error occured : ", error)
return error
}
}
现在,如果其中一个属性没有像“未定”这样的数据,则功能setData
将不起作用。
要提前处理它,我需要为每个属性创建 ugly if语句(传递给函数),以检查是否提供了该值,否则抛出错误,
我的问题是在typescript / nodejs中是否有 cleaner 方法来处理验证?
答案 0 :(得分:0)
您可能想看看https://github.com/scopsy/typescript-param-validator
import { Validator, Validate } from 'typescript-param-validator';
import { IsDate, IsNotEmpty, MaxDate, IsEmail, Length } from 'class-validators';
class DataDto {
@IsNotEmpty()
@IsEmail()
email: string;
@Length(10, 200)
@IsNotEmpty()
description: string;
@IsDate()
@IsNotEmpty()
@MaxDate(new Date())
birthDate: Date;
}
class TestClass {
@Validate()
methodName(@Validator() data: DataDto) {
}
@Validate()
serverControllerEndpoint(@Validator(DataDto, 'body') req: Request) {
}
}