Я делаю небольшую страницу для отправки писем с заголовками.Я уже поцарапал данные, и это уже.Я сделал маршрутизацию и передал данные с помощью руля.Все в порядке, за исключением того, что я хочу использовать {{#each}} внутри моего шаблона, я сделал, и он работает только с маршрутизацией, но не внутри электронной почты.Внутри электронной почты я получаю только одну переменную todayDate.
Таким образом, массив новостей передается с обычным выражением и рулем, но не с nodemailer и выражается вместе.
Это мой index.js
app.get("/", (req, res) => {
res.render("index", {
newsSummary: news,
todayDate: moment().format("MMMM Do YYYY")
});
});
var nodemailer = require("nodemailer");
var transporter = nodemailer.createTransport({
service: "hotmail",
auth: {
user: "email",
pass: "pass"
}
});
var options = {
viewEngine: {
extname: ".handlebars",
layoutsDir: "views/",
defaultLayout: "index"
},
viewPath: "views/"
};
transporter.use("compile", hbs(options));
var mailOptions = {
from: "email",
to: "email",
subject: "News summary",
template: "index",
context: {
newsSummary: news,
todayDate: moment().format("MMMM Do YYYY")
}
};
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
} else {
console.log(
"Email sent: " +
info.response +
" at " +
moment().format("MMMM Do YYYY, h:mm:ss a")
);
}
});
Это мой index.handlebars
<section class="section">
<div class="container">
<h1 class="title">News top headlines</h1>
<p class="subtitle">Summary of today's news<br />
{{{todayDate}}}</p>
</div>
</section>
<section class="section">
<div class="container">
{{#newsSummary}}
<div class="box">
<div class="has-text-link title is-4">
<a href={{{url}}} target="_blank">
{{{title}}}
</a>
</div>
<div class="subtitle is-4">{{{description}}}</div>
</div>
{{/newsSummary}}
</div>
</section>