Node Express Handlebars передает переменные, но не передает массивы - PullRequest
0 голосов
/ 16 декабря 2018

Я делаю небольшую страницу для отправки писем с заголовками.Я уже поцарапал данные, и это уже.Я сделал маршрутизацию и передал данные с помощью руля.Все в порядке, за исключением того, что я хочу использовать {{#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>
...