我正在嘗試在我的 Nest.js api 中驗證日期引數(使用類驗證器);以下是我所擁有的:
class DateValidate {
@IsDate()
date: Date;
}
@Get('day/:day')
getDayMealsPlan(@Param('day') day: DateValidate): any {
return day;
}
我在 URL 中傳遞日期引數,如下所示:
localhost:3000/meals/day/2022-03-06T11:00:00.000Z
它給我一個 400 錯誤:
{
"statusCode": 400,
"message": [
"date must be a Date instance"
],
"error": "Bad Request"
}
我有一個兩部分的問題:
- 如何驗證日期?
- 日期在引數中的外觀如何?這是正確的方法嗎:2022-03-06T11:00:00.000Z
uj5u.com熱心網友回復:
2022-03-06T11:00:00.000Z這個值是一個字串型別。這就是 class-validator 抱怨的原因not Date instance。
您需要告訴將您的字串格式轉換為日期。
您可以使用Type來自class-transformer.
class DateValidate {
@IsDate()
@Type(() => Date)
day: Date;
}
@Controller('something')
export class SomethingController {
@Get('day/:day')
getDayMealsPlan(@Param() params: DateValidate) {
console.log(params.day instanceof Date); // true
return params;
}
}
uj5u.com熱心網友回復:
我認為應該是:
@Get('day/:date') // <
getDayMealsPlan(@Param() o: DateValidate): any {
return o.date
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/464099.html
