Mongoose 嵌套 ObjectId 数组验证 Dto
Mongoose nested ObjectId Array validation Dto
我有一个看起来像这样的 Dto:
import { Type } from "class-transformer";
import { ArrayMinSize, IsArray, ValidateNested} from "class-validator";
import { ObjectId } from "mongoose";
export class MongoIdDto {
@IsArray()
@ValidateNested({each: true})
@ArrayMinSize(1)
@Type(() => ObjectId)
ids: ObjectId[]
}
但这会给我一个错误:
'ObjectId' only refers to a type, but is being used as a value here.
这个错误是怎么出现的?
这是一个常见的导入错误:
ObjectId 可以从 mongoose 和 mongoDB.
导入
猫鼬导入是一个类型
mongodb 导入是 bson ObjectId 类型的 class 表示
因此,要解决此问题,请将您的导入更改为:
import { ObjectId } from "mongodb";
但实际上有一个选项可以用这个来验证 MongoIds:
export class MongoIdArrayDto {
@IsMongoId({each: true})
@ArrayMinSize(1)
ids: ObjectId[]
}
我有一个看起来像这样的 Dto:
import { Type } from "class-transformer";
import { ArrayMinSize, IsArray, ValidateNested} from "class-validator";
import { ObjectId } from "mongoose";
export class MongoIdDto {
@IsArray()
@ValidateNested({each: true})
@ArrayMinSize(1)
@Type(() => ObjectId)
ids: ObjectId[]
}
但这会给我一个错误:
'ObjectId' only refers to a type, but is being used as a value here.
这个错误是怎么出现的?
这是一个常见的导入错误:
ObjectId 可以从 mongoose 和 mongoDB.
导入猫鼬导入是一个类型
mongodb 导入是 bson ObjectId 类型的 class 表示
因此,要解决此问题,请将您的导入更改为:
import { ObjectId } from "mongodb";
但实际上有一个选项可以用这个来验证 MongoIds:
export class MongoIdArrayDto {
@IsMongoId({each: true})
@ArrayMinSize(1)
ids: ObjectId[]
}