Javascript 巢罐';t解析RestController的依赖关系
我正在一个新的Nest.js项目中工作,每当我尝试启动服务器时:Javascript 巢罐';t解析RestController的依赖关系,javascript,node.js,typescript,dependency-injection,nestjs,Javascript,Node.js,Typescript,Dependency Injection,Nestjs,我正在一个新的Nest.js项目中工作,每当我尝试启动服务器时: [ExceptionHandler] Nest can't resolve dependencies of the RestController (?). Please make sure that the argument dependency at index [0] is available in the RestModule context. 我已经检查了文档,到处都找遍了,我找不到问题所在。RestController
[ExceptionHandler] Nest can't resolve dependencies of the RestController (?). Please make sure that the argument dependency at index [0] is available in the RestModule context.
我已经检查了文档,到处都找遍了,我找不到问题所在。RestController
类注入UsersService
,该服务由UsersModule
导出,并导入到RestModule
中。一切看起来都很好,但都不起作用
这是我的代码:
app.module.ts
:
import { Module } from '@nestjs/common'
import { RestModule } from './rest/rest.module'
@Module({
imports: [
RestModule
]
})
export class AppModule { }
import { Module } from '@nestjs/common'
import { RestController } from './rest.controller'
import { UsersModule } from '../users/users.module'
@Module({
imports: [
UsersModule
],
controllers: [
RestController
]
})
export class RestModule { }
import { Controller, Inject, Get } from '@nestjs/common'
import { UsersService } from '../users/users.service'
import { User } from '../users/user.interface'
@Controller()
export class RestController {
constructor (
@Inject()
private readonly usersService: UsersService
) { }
@Get()
async getAll (): Promise<User[]> {
return this.usersService.findAll()
}
}
import { Module } from '@nestjs/common'
import { UsersService } from './users.service'
@Module({
providers: [
UsersService
],
exports: [
UsersService
]
})
export class UsersModule { }
import { Injectable } from '@nestjs/common'
import { User } from './user.interface'
@Injectable()
export class UsersService {
async findAll (): Promise<User[]> {
return new Promise((resolve, reject) => resolve([]))
}
}
rest.module.ts
:
import { Module } from '@nestjs/common'
import { RestModule } from './rest/rest.module'
@Module({
imports: [
RestModule
]
})
export class AppModule { }
import { Module } from '@nestjs/common'
import { RestController } from './rest.controller'
import { UsersModule } from '../users/users.module'
@Module({
imports: [
UsersModule
],
controllers: [
RestController
]
})
export class RestModule { }
import { Controller, Inject, Get } from '@nestjs/common'
import { UsersService } from '../users/users.service'
import { User } from '../users/user.interface'
@Controller()
export class RestController {
constructor (
@Inject()
private readonly usersService: UsersService
) { }
@Get()
async getAll (): Promise<User[]> {
return this.usersService.findAll()
}
}
import { Module } from '@nestjs/common'
import { UsersService } from './users.service'
@Module({
providers: [
UsersService
],
exports: [
UsersService
]
})
export class UsersModule { }
import { Injectable } from '@nestjs/common'
import { User } from './user.interface'
@Injectable()
export class UsersService {
async findAll (): Promise<User[]> {
return new Promise((resolve, reject) => resolve([]))
}
}
rest.controller.ts
:
import { Module } from '@nestjs/common'
import { RestModule } from './rest/rest.module'
@Module({
imports: [
RestModule
]
})
export class AppModule { }
import { Module } from '@nestjs/common'
import { RestController } from './rest.controller'
import { UsersModule } from '../users/users.module'
@Module({
imports: [
UsersModule
],
controllers: [
RestController
]
})
export class RestModule { }
import { Controller, Inject, Get } from '@nestjs/common'
import { UsersService } from '../users/users.service'
import { User } from '../users/user.interface'
@Controller()
export class RestController {
constructor (
@Inject()
private readonly usersService: UsersService
) { }
@Get()
async getAll (): Promise<User[]> {
return this.usersService.findAll()
}
}
import { Module } from '@nestjs/common'
import { UsersService } from './users.service'
@Module({
providers: [
UsersService
],
exports: [
UsersService
]
})
export class UsersModule { }
import { Injectable } from '@nestjs/common'
import { User } from './user.interface'
@Injectable()
export class UsersService {
async findAll (): Promise<User[]> {
return new Promise((resolve, reject) => resolve([]))
}
}
users.service.ts
:
import { Module } from '@nestjs/common'
import { RestModule } from './rest/rest.module'
@Module({
imports: [
RestModule
]
})
export class AppModule { }
import { Module } from '@nestjs/common'
import { RestController } from './rest.controller'
import { UsersModule } from '../users/users.module'
@Module({
imports: [
UsersModule
],
controllers: [
RestController
]
})
export class RestModule { }
import { Controller, Inject, Get } from '@nestjs/common'
import { UsersService } from '../users/users.service'
import { User } from '../users/user.interface'
@Controller()
export class RestController {
constructor (
@Inject()
private readonly usersService: UsersService
) { }
@Get()
async getAll (): Promise<User[]> {
return this.usersService.findAll()
}
}
import { Module } from '@nestjs/common'
import { UsersService } from './users.service'
@Module({
providers: [
UsersService
],
exports: [
UsersService
]
})
export class UsersModule { }
import { Injectable } from '@nestjs/common'
import { User } from './user.interface'
@Injectable()
export class UsersService {
async findAll (): Promise<User[]> {
return new Promise((resolve, reject) => resolve([]))
}
}
从'@nestjs/common'导入{Injectable}
从“/User.interface”导入{User}
@可注射()
导出类用户服务{
异步findAll():承诺{
返回新承诺((解决,拒绝)=>解决([]))
}
}
提前谢谢你 在
RestController
类中,必须从构造函数中删除@Inject()
:
constructor (
private readonly usersService: UsersService
) { }
@Inject()
可用于。在RestController
类中,必须从构造函数中删除@Inject()
:
constructor (
private readonly usersService: UsersService
) { }
@Inject()
可用于