Вызов сервиса из консоли в Nest
Контекст уже собран, но скрипт ничего не делает: массив в памяти не трогают, в терминал не пишут, и пользы от запуска нет.
Из объекта контекста берут
нужный провайдер через
get, передают токен класса
сервиса и вызывают его операцию.
После шага вызывают
close, чтобы сработали
хуки завершения и процесс NodeJS
не завис без HTTP.
Покажем на примере постов:
import { Injectable } from '@nestjs/common';
@Injectable()
export class PostService {
reportPosts(): string {
return 'All posts';
}
}
import { Module } from '@nestjs/common';
import { PostService } from './post.service.js';
@Module({
providers: [PostService],
})
export class PostsModule {}
import { Module } from '@nestjs/common';
import { PostsModule } from './posts/posts.module.js';
@Module({
imports: [PostsModule],
})
export class AppModule {}
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module.js';
import { PostService } from './posts/post.service.js';
async function bootstrap() {
const app = await NestFactory.createApplicationContext(AppModule);
const postService = app.get(PostService);
console.log(postService.reportPosts());
await app.close();
}
await bootstrap();
Сделайте в WorkerService
операцию отчёта по списку
и вызовите её из консольной
точки входа с закрытием контекста
после шага.