我得到了这样的错误。
错误:Nest无法解析UsersService的依赖关系(?Nest 无法解析 UsersService 的依赖关系(?)。请确保索引[0]处的参数Usersinterface在UsersModule上下文中是可用的。
潜在的解决方案:-如果Usersinterface是一个提供者,它是否是当前UsersModule的一部分?- 如果Usersinterface是从一个单独的@Module中导出的,那么该模块是否在UsersModule中导入?
@Module({
imports: [ /* the Module containing Usersinterface */ ]
})
我得到了很多关于这个问题的答案,但这些答案与我的问题几乎没有什么不同,在我的问题中,我得到的是接口的错误,而不是任何控制器或服务。
这里是Usersinterface的代码。
import * as mongoose from 'mongoose'
export interface Usersinterface extends mongoose.Document {
readonly username: string;
readonly password: string;
}
这里是Usersmodule的代码。
@Module({
imports:[],
providers: [UsersService],
controllers: [UsersController]
})
export class UsersModule {}
这里是appmodule的代码。
@Module({
imports: [AppModule,UsersModule,MongooseModule.forRoot("mongodb://localhost:27017/test",{ useNewUrlParser: true })],
controllers: [AppController],
providers: [AppService]
})
export class AppModule {}
这里是UsersService的代码。
@Injectable()
export class UsersService {
private hashLength = 16;
constructor(@Inject('Usersinterface') private readonly userModel:Model<Usersinterface>) {}
解决方案:
正如我刚才在 你的另一个问题 您需要给模块提供正确的上下文,说明有哪些供应商可用。要做到这一点,您需要在模块中添加 MongooseMOdule.forFeature([schemaObject])
对你的 UsersModule
‘s imports
数组。最后,它应该是这样的。
@Module({
imports: [MongooseModule.forFeautre([{ name: 'Usersinterface', schema: UsersSchema }]) // you need to create the UsersSchema,
controllers: [UsersController],
providers: [UsersService],
})
export class UsersModule {}
@Injectable()
export class UsersService {
private hasLength = 16;
// make sure this string matches the value in the MongooseModule.forFeature's name property
constructor(@InjectModel('Usersinterface') private readonly userModel: Model<UsersInterface>) {}
本文来自投稿,不代表运维实战侠立场,如若转载,请注明出处:https://www.shizhanxia.com/820.html