Шаблоны Loopback 4 и EJS

#ejs #loopbackjs #loopback4

#ejs #loopbackjs #loopback4

Вопрос:

Мы создаем API, который должен отправлять электронные письма пользователям. Мы интегрировали nodemailer в наш проект Loopbck 4 и планируем использовать EJS для шаблонов электронной почты.

К моему удивлению, похоже, нет какой-либо надлежащей документации о том, как отправлять электронные письма с контроллера обратной связи с использованием шаблонов EJS.

Как нам создать тело письма из шаблонов EJS в нашем контроллере обратной связи?

Одна из причин, по которой мы сбиты с толку, заключается в том, что документация по Loopback 3, похоже, предполагает, что EJS предварительно настроен, что заставляет нас полагать, что он уже существует:

https://loopback.io/pages/en/lb4/readmes/loopback-example-relations.html#configure-server-side-views

Ответ №1:

Для использования EJS в LB4 не требуется никакой специальной настройки.

 import ejs = require('ejs');
import nodemailer = require('nodemailer');

const template = '<%= people.join(", "); %>';
const data = ['geddy', 'neil', 'alex'];
const html = ejs.render(template, data);

const transporter = nodemailer.createTransport({...});

const sentMail = await transporter.sendMail({
  to: '...',
  subject: '...',
  html,
});

  

Взгляните на @loopback / rest-explorer, он использует EJS для рендеринга интерфейса.

Комментарии:

1. Спасибо вам за это. В итоге я поступил примерно так, как вы упомянули. Тем не менее, я рассматривал больше в соответствии с архитектурой внедрения зависимостей loopback, где вы вводили шаблоны, а не явно вызывали EJS везде, где это было необходимо. Итак, в итоге мы создали интерфейс и службу с именем Templating и внедрили его. Мы хотели посмотреть, есть ли уже готовый «шаблонный» вводимый в loopback.