0
votes

I am trying to inject a ContentsService into a SlackModule so that I can use some of the Content functions in my Slack Controller.

This is app.module

@Module({
  imports: [
    ContentsModule,
    ZapierModule,
    SlackModule,
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

Here is my Contents Module:

import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';

import { ContentsController, ZapierController, SlackInteractiveController } from './contents.controller';
import { ContentsService } from './contents.service';
import { ContentSchema } from './content.model';

@Module({
  imports: [
    MongooseModule.forFeature([{ name: 'Content', schema: ContentSchema }]),
  ],
  controllers: [ContentsController, ZapierController, SlackInteractiveController],
  providers: [ContentsService],
  exports: [ContentsService],
})
export class ContentsModule {}

This is my Slack Module:

import { Module } from '@nestjs/common';
import { SlackService } from './slack.service';
import { SlackController } from './slack.controller';
import { ContentsService } from '../contents/contents.service';

@Module({
  providers: [SlackService],
  controllers: [SlackController],
  imports: [ContentsService],
}) 
export class SlackModule {}

And my Slack Controller

import { ContentsService } from '../contents/contents.service'

@Controller('slackevents')
export class SlackController {  
  constructor(private contentsService: ContentsService) {}

But when I run this code, I get this error:

[Nest] 75628 - 05/22/2020, 7:08 AM [ExceptionHandler] Nest can't resolve dependencies of the ContentsService (?). Please make sure that the argument at index [0] is available in the ContentsService context. +44ms\

What is it that I am doing wrong?

1

1 Answers

0
votes

Services and other providers do not belong in the imports array. Only module classes should go in there. You should have imports: [ContentsModule] in your SlackModule and you'll have access to the ContentsService