错误:Nest 无法导出不属于当前处理模块 (DatabaseModule) 一部分的组件/模块

Sha*_*haï 6 node.js express typescript nestjs

我正在编写一个非常简单的应用程序,允许使用 Express 在 PostgreSQL 数据库上创建 CRUD 功能。当我运行程序时,出现此错误:错误:Nest 无法导出不属于当前处理的模块 (DatabaseModule) 一部分的组件/模块。请验证每个导出的单元是否在此特定上下文中可用。

我真的不明白为什么......在app.module.ts中,我导入DatabaseModule,它调用数据库提供程序(我的postreSQL连接在哪里)。

我是打字稿新手,我迷路了:/我只发布应用程序的入口点,但如果还不够,我可以发送更多内容,感谢您的帮助:

import { NestFactory } from '@nestjs/core';
import { ApplicationModule } from './src/app.module';
import * as express from 'express';
import 'ts-node/register';

async function bootstrap() {
    let instance: any;
    instance = express();
    const app = NestFactory.create(ApplicationModule, instance);
    app.then(instance => instance.listen(3000), () => console.log('Application is listening on port 3000'));
}

bootstrap();
Run Code Online (Sandbox Code Playgroud)

这个app.module.ts

import { Module } from '@nestjs/common';
import { MainController } from './controller/main.controller';

import { CatsModule } from './cats.module';
import { CatsController } from './controller/cats.controller';

import { OwnerModule } from './owner.module';
import { OwnerController } from './controller/owner.controller';

import {CatfoodController} from './controller/catfood.controller';
import { CatfoodModule } from './catfood.module';

import { DatabaseModule } from './database/database.module';

@Module({
  controllers: [
      MainController,
      CatsController,
      CatfoodController,
      OwnerController,
  ],
    modules: [
        DatabaseModule,
        CatsModule,
        CatfoodModule,
        OwnerModule,
    ],
})

export class ApplicationModule {}
Run Code Online (Sandbox Code Playgroud)

和数据库模块:

import { Module } from '@nestjs/common';
import { databaseProviders } from './database.providers';

@Module({
    components: [...databaseProviders],
    exports: [...databaseProviders],
})
export class DatabaseModule {}
Run Code Online (Sandbox Code Playgroud)

Github: https: //github.com/lukile/catProject

Cha*_*ran 0

在此输入图像描述

我认为你需要放入modules数组imports,而不是modules数组。请仔细检查。并在他们的班级中CatsModule有CatfoodModule他们的对应者controllers(他们应该这样做)?您不必将每个控制器都放入ApplicationModule.

  • 我终于解决了我的问题。我从头开始,终于可以通过 API 连接从 postgreSQL 数据库创建、读取、更新和删除。如果它可以帮助任何人,我的 github 是最新的:) 感谢您的帮助 (2认同)
  • 是的,抱歉^^。问题是我迷路了:我有 2 个模块,但我没有看到它......显然我称之为坏模块,其中我没有导入 TypeOrmModule.forFeature()。在我的服务中,我使用“@Inject”而不是“@InjectRepository”。它无法工作:/ (2认同)