emailService SendEmail не работает Nodemailer - PullRequest
0 голосов
/ 21 марта 2019

Я использовал это ожидание, чтобы отправить электронное письмо рецензенту после отправки формы, но кажется, что что-то не работает, хотя console.log запрашивает метод

test.services.ts

    async send(
    candidateId: number,
    entity: TestDto,
    email?: { title: string; content: string },
  ) {
    return db.sequelize.transaction(async transaction => {
      const instance = await db.Candidate.findById(candidateId, {
        rejectOnEmpty: true,
      });
      const testInstance = await instance.createTest(entity, {
        fields: ['name', 'reviewerId', 'candidateId'],
      });
      const reviewerRole = await db.Role.findOne({
        where: { name: 'test-reviewer' },
      });
      await db.EmployeeHasRole.bulkCreate(
        [{ employeeId: entity.reviewerId, roleId: reviewerRole.id }],
        {
          updateOnDuplicate: ['roleId', 'employeeId'],
        },
      );


      // Test value
      email = {
        title: 'hihi',
        content: 'hehehe'
      }

      if(email) { // email is undefined**
        console.log('begin');
        const reviewer = await testInstance.getReviewer(); // Get reviewer information
        this.emailService.sendEmail({
          receiver: reviewer.email,
          content: email.content,
          subject: email.title,
        }).then(() => console.log('done done'), (err) => console.log(err, 'not done')); // Prompt done done -> work
      }
      return testInstance;
    });
  }

В первый раз электронная почта не определена, поэтому я назначил ей тестовое значение, я даже изменил reviewer.email на свою электронную почту'xxxxx@gmail.com'

test.controller.ts

@Post()
  @Permission('arrange-interview:candidate/interview')
  send(
    @Param('candidateId', new ParseIntPipe()) candidateId: number,
    @Body(new ValidationPipe({ transform: true, whitelist: true }))
    entity: TestDto,
    @Body('email') email: { title: string; content: string },
  ) {
    return this.testService.send(candidateId, entity, email);
  }
...