nestjs module import export providers

์†ก์ธ์„ฑยท2021๋…„ 9์›” 21์ผ
0

๐Ÿค” ๋ฌธ์ œ ์ƒํ™ฉ
channel.modulet.tsํŒŒ์ผ์—์„œ event.module.tsํŒŒ์ผ์— ๋“ค์–ด์žˆ๋Š” EventGateway๋ผ๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ์ƒํ™ฉ์ด๋ผ๊ณ  ํ•˜์ž.

nestjs๋Š” ๋ชจ๋“ˆ๋ผ๋ฆฌ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ๋™์ž‘ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ชจ๋“ˆ๋“ค์‚ฌ์ด์˜ ์—ฐ๊ฒฐ์„ ์‹œ์ผœ์ค˜์•ผํ•œ๋‹ค.

์ผ๋‹จ ํŒŒ์ผ์— ์ฝ”๋“œ๋ฅผ ๋ณด์ž.

channels.module.ts

@Module({
  imports: [],
  controllers: [ChannelsController],
  providers: [ChannelsService],
})
export class ChannelsModule {}

event.module.ts

import { Module } from '@nestjs/common';
import { EventGateway } from './event.gateway';

@Module({
  providers: [EventGateway],
  exports: [],
})
export class EventModule {}

์œ„ ๋‘ ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ๊ฐ€์žฅ ์œ„์—์„œ ์ œ์‹œํ–ˆ๋˜ ๋ฌธ์ œ์ƒํ™ฉ์— ๋Œ€ํ•ด์„œ ์—ฐ๊ฒฐํ•ด๋‚ด์•ผํ•œ๋‹ค.
์šฐ์„  event.module.ts๋ฅผ ๋ณด์ž ์ดํŒŒ์ผ์„ ๋ณด๋ฉด EventGateway ํŒŒ์ผ์„ ์˜์กด์„ฑ ์ฃผ์ž…ํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” event.modules.tsํŒŒ์ผ ํด๋ž˜์Šค์ธ EventModule์„ channels.module.ts๋กœ ์˜์กด์„ฑ ์ฃผ์ž…ํ•˜๋ฉด ๋œ๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด๋œ๋‹ค.

!!์—ฌ๊ธฐ์„œ ์ž ๊น ๐Ÿ‘ˆ
๊ทธ๋ƒฅ channels.module.ts ํŒŒ์ผ์•ˆ์—๋‹ค๊ฐ€ EventGatewayํŒŒ์ผ์„ ๋ฐ”๋กœ providers์— ๋„ฃ์œผ๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹ˆ๋ƒ?๋ผ๊ณ  ๋ฐ˜๋ฌธํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
๋งž๋‹ค. EventGateway๋ฅผ ๋ฐ”๋กœ channels.module.ts์•ˆ์— ๋„ฃ์–ด๋„ ์ฝ”๋“œ์ƒ์— ๋ฌธ์ œ๋Š” ์—†๋‹ค ๊ทธ๋Ÿฌ๋‚˜ EventGatewayํŒŒ์ผ ์ž์ฒด๋ฅผ ๋„ฃ๊ฒŒ๋˜๋ฉด, ๊ณ„์†ํ•ด์„œ ๊ฐ์ฒด๊ฐ€ ์ธ์Šคํ„ด์Šคํ™” ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ์— ์Œ“์ด๊ฒŒ๋œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ๋˜๋ฉด ๋ถˆํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž์น˜ํ•˜๊ฒŒ๋˜๋Š”๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์ดˆ์˜ event.module.ts์ด ์ดˆ๊ธฐํ™”๋ฐ ์ƒ์„ฑ์ด ๋ ๋•Œ์ƒ์„ฑํ•˜๋Š” event.module.ts๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

channels.module.ts

@Module({
  imports: [EventModule],
  controllers: [ChannelsController],
  providers: [ChannelsService],
})
export class ChannelsModule {}

event.module.ts

@Module({
  providers: [EventGateway],
  exports: [EventGateway] //channels.module.tsํŒŒ์ผ์—์„œ์™€ ๊ฐ™์ด EventModule์„ importํ•˜๊ณ  EventModule์—์„œ EventGateWayํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด event.module.tsํŒŒ์ผ์—์„œ export๋„ ํ•จ๊ป˜ ๋„ฃ์–ด์ค˜์•ผํ•œ๋‹ค.,
})
export class EventModule {}
profile
์ฝ”๋“œ ํ•œ์ค„์— ์˜๋ฏธ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด ๊ฐ€๋Š”์ค‘... ๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€