#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.