如何在AWS Lambda函数中使用NestJS模块

时间:2020-01-21 17:29:35

标签: aws-lambda nestjs

我有一个由许多模块组成的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应该具有类似的功能,但我在官方页面上找不到它。

P.S。我不能仅使用UserService,因为它取决于DatabaseModule中的其他服务和提供程序。这就是为什么我要完全配置此模块并可以使用其服务的原因

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

还有一些其他事件也可能有用,例如onApplicationBootstrap()