РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnsSpMaAd 116 of 201 menu
◀ ▶

Адрес и тема в Nest

Отправка с фиксированным текстом уже работает, но каждому клиенту нужны свои поля: кому адресовать уведомление и как назвать тему. Пока сервис не читает данные из запроса, страница не может передать их в письмо.

Контроллер достаёт строки из тела запроса и передаёт их параметрами в метод сервиса. Сервис подставляет их в объект для sendMail в поля to и subject, а текст письма оставляет коротким и одинаковым для любого вызова.

Покажем на примере постов:

import { Injectable } from '@nestjs/common'; import { MailerService } from '@nestjs-modules/mailer'; @Injectable() export class PostService { mailerService: MailerService; constructor(mailerService: MailerService) { this.mailerService = mailerService; } async sendNotice(to: string, subject: string) { return this.mailerService.sendMail({ to, subject, text: 'Материал опубликован.', }); } }

Контроллер прочитает поля из тела и вызовет сервис:

import { Body, Controller, Post } from '@nestjs/common'; import { PostService } from './post.service.js'; @Controller('posts') export class PostController { postService: PostService; constructor(postService: PostService) { this.postService = postService; } @Post('mail') sendMail( @Body('to') to: string, @Body('subject') subject: string, ) { return this.postService.sendNotice(to, subject); } }

Сделайте в WorkerController страницу, которая передаёт получателя и тему в WorkerService для короткого текстового уведомления.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить