【问题标题】:How to use NestJS modules in aws lambda functions如何在 aws lambda 函数中使用 NestJS 模块
【发布时间】:2020-01-21 17:29:35
【问题描述】:

我有一个 NestJS 应用程序,它由许多模块组成:databaseModule、userModule、devicesModule 等。它们都打包到一个模块 ApplicationModule 中,用于处理服务器操作。

但是现在我需要在我的项目中添加一些 lambda 函数,并且我需要从 databaseModule 中执行一些方法,但我不知道该怎么做。

我想象的伪代码:

export const handler: Handler = (event: any, context: Context, callback) => {
  const dbModule = DataBaseModule.build();
  dbModule.get(UserService).createProject('my_project');
  callback(null, event);
};

我认为nestjs应该有类似的功能,但我在官方页面上找不到。

附:我不能只使用 UserService,因为它依赖于 DatabaseModule 中的其他服务和提供者。这就是为什么我希望这个模块被完全配置并且我可以使用它的服务

【问题讨论】:

    标签: aws-lambda nestjs


    【解决方案1】:

    我找到了答案https://docs.nestjs.com/application-context

    我们可以通过以下方式使用我们的子模块:

    const app = await NestFactory.create(ApplicationModule);
    const tasksService = app.get(TasksService);
    

    【讨论】:

      【解决方案2】:

      您可以使用 NestJS (https://docs.nestjs.com/fundamentals/lifecycle-events) 中的生命周期事件。

      这样,您可以在 Service 上实现 OnModuleInit() 并设置所需的函数在模块加载时运行(可以是同步或异步)。

      还有一些其他的事件也很有用,比如 onApplicationBootstrap()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-18
        • 1970-01-01
        • 2019-05-03
        • 2016-12-21
        • 1970-01-01
        • 2021-11-20
        • 1970-01-01
        • 2021-08-19
        相关资源
        最近更新 更多