我有一个由许多模块组成的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中的其他服务和提供程序。这就是为什么我要完全配置此模块并可以使用其服务的原因
答案 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()