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

时间:2018-04-12 13:52:38

标签: node.js typescript express nestjs

我正在编写一个非常简单的应用程序,允许使用express在PostgreSQL数据库上创建CRUD功能。 当我运行我的程序时,我收到此错误: 错误:Nest无法导出不属于当前proccessed模块(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();

这个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 {}

和database.module:

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

@Module({
    components: [...databaseProviders],
    exports: [...databaseProviders],
})
export class DatabaseModule {}

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

1 个答案:

答案 0 :(得分:0)

enter image description here

我认为您需要将modules放在imports数组中,而不是modules数组中。请仔细检查。 CatsModuleCatfoodModule在他们的班级中是否有相应的controllers(他们应该这样做)?您不必将每个控制器放在ApplicationModule