无法使用 nestjs-joi lib 对 mongoose 模式进行验证
cant make a validation to mongoose schema with nestjs-joi lib
我正在尝试在 nestjs 中使用带有 mongoose 模式的 joi 验证,但是有一个错误我无法解决
这是我的代码
schema.dto.ts
import Joi from "joi"
import { JoiSchema, JoiSchemaOptions } from "nestjs-joi"
@JoiSchemaOptions({
allowUnknown: false,
})
export class EmployeesJoi {
@JoiSchema(Joi.string().required())fullName!: string;
}
这是我的控制器的一个小演示
@Post('AddNew')
async add(@Body() employee: EmployeesJoi ) {
await console.log(employee)
}
}
最后,我遇到了那个错误
巢开始
H:[=23=]0\training-center\dist\employees\dto\employees.dto.js:21
nestjs_joi_1.JoiSchema(joi_1.default.string().required()),
^
TypeError: Cannot read property 'string' of undefined
at Object.<anonymous> (H:[=12=]0\training-center\dist\employees\dto\employees.dto.js:21:42)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (H:[=12=]0\training-center\dist\employees\employees.controller.js:18:25)
我很确定joi
的导出是命名导出,所以你需要做
import * as Joi from 'joi';
而不是
import Joi from 'joi';
我正在尝试在 nestjs 中使用带有 mongoose 模式的 joi 验证,但是有一个错误我无法解决 这是我的代码 schema.dto.ts
import Joi from "joi"
import { JoiSchema, JoiSchemaOptions } from "nestjs-joi"
@JoiSchemaOptions({
allowUnknown: false,
})
export class EmployeesJoi {
@JoiSchema(Joi.string().required())fullName!: string;
}
这是我的控制器的一个小演示
@Post('AddNew')
async add(@Body() employee: EmployeesJoi ) {
await console.log(employee)
}
}
最后,我遇到了那个错误
巢开始
H:[=23=]0\training-center\dist\employees\dto\employees.dto.js:21 nestjs_joi_1.JoiSchema(joi_1.default.string().required()), ^
TypeError: Cannot read property 'string' of undefined
at Object.<anonymous> (H:[=12=]0\training-center\dist\employees\dto\employees.dto.js:21:42)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (H:[=12=]0\training-center\dist\employees\employees.controller.js:18:25)
我很确定joi
的导出是命名导出,所以你需要做
import * as Joi from 'joi';
而不是
import Joi from 'joi';