NestJs 无法解决依赖关系,为什么?

Mak*_*kov 7 typescript nestjs

NestJs新手,按照https://docs.nestjs.com/techniques/database配置后 无法找出我的代码的问题。

错误:Nest 无法解析 AdminRepository 的依赖关系(?)。请确保索引 [0] 处的参数 Connection 在 TypeOrmModule 上下文中可用。

管理模块:

import { Module } from '@nestjs/common';
import {Admin} from "../entities/Admin";
import {TypeOrmModule} from '@nestjs/typeorm';
import {AdminService} from "./admin.service";
import {AdminController} from "./admin.controller";

@Module({
    imports:[TypeOrmModule.forFeature([Admin])],
    exports: [TypeOrmModule],
    providers: [AdminService],
    controllers: [AdminController]
})
export class AdminModule {}
Run Code Online (Sandbox Code Playgroud)

管理员控制器:

import { Controller } from '@nestjs/common';

@Controller('admin')
export class AdminController {}
Run Code Online (Sandbox Code Playgroud)

管理服务:

import { Injectable } from '@nestjs/common';
import { Repository } from 'typeorm';
import { InjectRepository } from '@nestjs/typeorm';
import { Admin } from '../entities/Admin';


@Injectable()
export class AdminService {
    constructor(
        @InjectRepository(Admin)
        private readonly adminRepository:Repository<Admin>
    ) {}
}
Run Code Online (Sandbox Code Playgroud)

应用程序模块:

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { LoginController } from './login/login.controller';
import { RegisterController } from './register/register.controller';
import { ContactController } from './contact/contact.controller';

import { AppService } from './app.service';
import { LoginService } from './login/login.service';
import { ContactService } from './contact/contact.service';
import { RegisterService } from './register/register.service';
import { AdminModule } from './admin/admin.module';

@Module({
  imports: [AdminModule],
  controllers: [AppController, LoginController, RegisterController, ContactController],
  providers: [AppService, LoginService, ContactService, RegisterService],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

小智 9

您必须在应用程序模块中导入 typeorm 配置。参考下面的代码。

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { LoginController } from './login/login.controller';
import { RegisterController } from './register/register.controller';
import { ContactController } from './contact/contact.controller';

import { AppService } from './app.service';
import { LoginService } from './login/login.service';
import { ContactService } from './contact/contact.service';
import { RegisterService } from './register/register.service';
import { AdminModule } from './admin/admin.module';
import { TypeOrmModule } from '@nestjs/typeorm';


@Module({
  imports: [TypeOrmModule.forRoot(),AdminModule],
  controllers: [AppController, LoginController, RegisterController, ContactController],
  providers: [AppService, LoginService, ContactService, RegisterService],
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)


Jay*_*iel 6

看起来您缺少TypeOrmModule.forRoot()/forRootAsync()设置AppModule与数据库的初始连接的内容。确保将其添加到imports阵列中(具有必要的配置),然后您就可以开始了。