将 @nestjs/mongoose 从 9.0.3 更新到 9.1.0 后,我遇到以下错误:
[Nest] 3818 - 06/04/2022, 12:50:13 AM ERROR [ExceptionHandler] Nest can't resolve dependencies of the WatchlistService (?). Please make sure that the argument PortfolioModel at index [0] is available in the AppModule context.
Potential solutions:
- If PortfolioModel is a provider, is it part of the current AppModule?
- If PortfolioModel is exported from a separate @Module, is that module imported within AppModule?
@Module({
imports: [ /* the Module containing PortfolioModel */ ]
})
Error: Nest can't resolve dependencies of the WatchlistService (?). Please make sure that the argument PortfolioModel at index [0] is available in the AppModule context.
Potential solutions:
- If PortfolioModel is a provider, is it part of the current AppModule?
- If PortfolioModel is exported from a separate @Module, is that module imported within AppModule?
@Module({
imports: [ /* the Module containing PortfolioModel */ ]
})
at Injector.lookupComponentInParentModules (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:231:19)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at Injector.resolveComponentInstance (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:184:33)
at resolveParam (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:106:38)
at async Promise.all (index 0)
at Injector.resolveConstructorParams (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:121:27)
at Injector.loadInstance (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:52:9)
at Injector.loadProvider (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:74:9)
at async Promise.all (index 4)
at InstanceLoader.createInstancesOfProviders (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:44:9)
at /home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:29:13
at async Promise.all (index 1)
at InstanceLoader.createInstances (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:28:9)
at InstanceLoader.createInstancesOfDependencies (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:18:9)
at /home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/nest-factory.js:96:17
at Function.asyncRun (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/errors/exceptions-zone.js:22:13)
Run Code Online (Sandbox Code Playgroud)
这是我的设置:
投资组合.entity.ts
[Nest] 3818 - 06/04/2022, 12:50:13 AM ERROR [ExceptionHandler] Nest can't resolve dependencies of the WatchlistService (?). Please make sure that the argument PortfolioModel at index [0] is available in the AppModule context.
Potential solutions:
- If PortfolioModel is a provider, is it part of the current AppModule?
- If PortfolioModel is exported from a separate @Module, is that module imported within AppModule?
@Module({
imports: [ /* the Module containing PortfolioModel */ ]
})
Error: Nest can't resolve dependencies of the WatchlistService (?). Please make sure that the argument PortfolioModel at index [0] is available in the AppModule context.
Potential solutions:
- If PortfolioModel is a provider, is it part of the current AppModule?
- If PortfolioModel is exported from a separate @Module, is that module imported within AppModule?
@Module({
imports: [ /* the Module containing PortfolioModel */ ]
})
at Injector.lookupComponentInParentModules (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:231:19)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at Injector.resolveComponentInstance (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:184:33)
at resolveParam (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:106:38)
at async Promise.all (index 0)
at Injector.resolveConstructorParams (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:121:27)
at Injector.loadInstance (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:52:9)
at Injector.loadProvider (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/injector.js:74:9)
at async Promise.all (index 4)
at InstanceLoader.createInstancesOfProviders (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:44:9)
at /home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:29:13
at async Promise.all (index 1)
at InstanceLoader.createInstances (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:28:9)
at InstanceLoader.createInstancesOfDependencies (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/injector/instance-loader.js:18:9)
at /home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/nest-factory.js:96:17
at Function.asyncRun (/home/tobias/Github/Financl/financl-api/node_modules/@nestjs/core/errors/exceptions-zone.js:22:13)
Run Code Online (Sandbox Code Playgroud)
数据库模块.ts
export class Portfolio extends Document {
@Prop({ required: true, trim: true, maxlength: 100, minlength: 1 })
name: string
}
export const PortfolioSchema = SchemaFactory.createForClass(Portfolio)
Run Code Online (Sandbox Code Playgroud)
应用程序模块.ts
const databaseModules = [
MongooseModule.forRoot(uris.MONGO_PRIMARY_CONNECTION_STRING, {
connectionName: 'primary_connection'
}),
MongooseModule.forFeature(
[{ name: Portfolio.name, schema: PortfolioSchema }],
'primary_connection'
),
]
@Module({
imports: [...databaseModules],
exports: [...databaseModules]
})
export class DatabaseModule {}
Run Code Online (Sandbox Code Playgroud)
帐户.服务.ts
@Module({
imports: [DatabaseModule],
controllers: [
AccountController
],
providers: [
AccountService
]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)
包.json
@Injectable()
export class AccountService {
constructor(
@InjectModel(Portfolio.name) private portfolioModel: Model<Portfolio>
) {}
}
Run Code Online (Sandbox Code Playgroud)
您需要提供连接名称InjectModel
@InjectModel(Portfolio.name, 'primary_connection') private portfolioModel: Model<Portfolio>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
706 次 |
| 最近记录: |