【发布时间】:2020-07-21 22:34:24
【问题描述】:
我有两个模块-
课程
-courses.module.ts
-courses.services.ts
-courses.schema.ts
-courses.controller.ts
组
-groups.module.ts
-groups.services.ts
-groups.schema.ts
-groups.controller.ts
courses.module.ts 的内容是-
import { Module } from '@nestjs/common';
import { CoursesService } from './courses.service';
import { CoursesController } from './courses.controller';
import { MongooseModule, getModelToken } from '@nestjs/mongoose';
import { CourseSchema } from './schemas/course.schema';
import { GroupsService } from 'src/groups/groups.service';
import { GroupsModule } from 'src/groups/groups.module';
@Module({
imports: [
MongooseModule.forFeature([{
name: 'Course', schema: CourseSchema }]),
GroupsModule,
],
providers: [
CoursesService,
],
controllers: [CoursesController],
exports: [CoursesService],
})
export class CoursesModule {}
groups.module.ts 的内容是-
import { Module } from '@nestjs/common';
import { GroupsService } from './groups.service';
import { GroupsController } from './groups.controller';
import { MongooseModule } from '@nestjs/mongoose';
import { GroupSchema } from './schemas/group.schema';
@Module({
imports: [
MongooseModule.forFeature([{ name: 'Group', schema: GroupSchema }]),
],
providers: [GroupsService],
controllers: [GroupsController],
exports:[
GroupsService,
]
})
export class GroupsModule {}
我想像这样在 course.schema.ts 中调用 GroupsService 的方法-
import * as mongoose from 'mongoose';
import { GroupsService } from 'src/groups/groups.service';
import { GroupsModule } from 'src/groups/groups.module';
import { GroupSchema } from 'src/groups/schemas/group.schema';
export const CourseSchema = new mongoose.Schema({
groupId: {
type: Number,
isAsync: true,
validate(value) {
if(GroupsService.getByCode()==='xyz'){
return false;
}
}
},
})
我怎样才能做到这一点?我浏览了 NestJS 的文档,但没有找到任何合适的方法来直接在模式中注入服务并在自定义验证期间访问服务方法。
【问题讨论】:
标签: node.js typescript mongoose nestjs