【问题标题】:Mongoose nested ObjectId Array validation DtoMongoose 嵌套 ObjectId 数组验证 Dto
【发布时间】:2022-01-15 19:02:51
【问题描述】:

我有一个如下所示的 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.

这个错误是怎么发生的?

【问题讨论】:

    标签: javascript mongodb validation mongoose dto


    【解决方案1】:

    这是一个常见的导入错误:

    ObjectId 可以从 mongoose 和 mongoDB 导入。

    猫鼬导入是一个类型

    mongodb 导入是 bson ObjectId 类型的类表示

    因此,要解决此问题,请将您的导入更改为: import { ObjectId } from "mongodb";

    但实际上有一个选项可以用这个来验证 MongoIds:

    export class MongoIdArrayDto {
        @IsMongoId({each: true})
        @ArrayMinSize(1)
        ids: ObjectId[]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 2016-03-27
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多