【问题标题】:How to use NESTJS modules in separate classes如何在单独的类中使用 NESTJS 模块
【发布时间】:2019-12-13 00:15:14
【问题描述】:

有时我需要使用一些在 Nestjs 代码结构中实现的方法,与这些类分开

例如我们有这样的架构:

entities
   -entity.entity.ts
   -entity.module.ts
   -entity.service.ts
   -entity.providers.ts

那么如何在单独的类中使用 entity.service 中的方法或属性?像这样:

import EntityService from './entities.entity.service'

export class SeparateClass{
   propertyFromEntityService: string

   constructor() {
      this.propertyFromEntityService = EntityService.propertyFromEntityService
 }
}

还有一点很重要。我不想在nestjs结构中实现这个单独的类,我只想把它当作一个普通的类来使用。谢谢

【问题讨论】:

  • 您的应用程序中究竟如何使用“SeparateClass”?
  • 实际上我使用本指南docs.nestjs.com/websockets/gateways 来启用套接字,我想在 events.gateway.ts 文件中创建 sockets = [] 属性并在控制器中使用此属性,以便在何时向客户端发送消息结束了我的控制器方法
  • 您需要使用依赖注入进行注入。使您的 EntityService 可注入并将其注入 SeparateClass 构造函数。查看文档以获取更多信息。 docs.nestjs.com
  • @Naor Levi 谢谢)我知道它可以工作,但我不想为此使用 nestjs 结构,这种情况需要我将 EntityService 包含到SeparateClass 模块提供程序中

标签: node.js typescript nestjs


【解决方案1】:

如果您不想通过 Nest 使用依赖注入,但仍想使用 Nest 应用程序中某个类的属性,则需要手动实例化该类,提供该类具有的任何依赖项,然后从服务中拉出属性。另一个选项,如果这个类将在 Nest 上下文之外使用,但仍然在 Nest 应用程序运行时,您可以使用 Nest 应用程序通过app.get(EntityService) 获取服务,但这确实需要您有权访问appNestFactory 创建应用程序之后。

【讨论】:

    猜你喜欢
    • 2021-04-06
    • 2020-03-23
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-22
    • 1970-01-01
    相关资源
    最近更新 更多