是否有内置的Mongoose选项来验证提取后的文档?
我当前使用的解决方法是在所有提取操作中使用post
钩子,例如find
:
(我使用typegoose)
const validateFoo = (foo) => {
const error = foo.validateSync();
if (error) {
throw new Error(`${error.toString()} for foo ${foo._id}`);
}
}
@modelOptions({
schemaOptions: {
collection: 'foos',
discriminatorKey: 'kind',
}
})
@post<FooSchema>('find', (foos) => foos.forEach(validateFoo))
@post<FooSchema>('findOne', validateFoo)
export abstract class FooSchema {
// ...
}