Обработчики обращаются к переменной массива

#javascript #node.js #express #handlebars.js

#javascript #node.js #выразить #handlebars.js

Вопрос:

Я работаю с рулями в экспресс-приложении. Со стороны сервера я передаю массив дат в виде строк:

 reqCtrl.dateController = async (req, res) => {
...
var dates = [
    "2020-09-27",
    "2020-09-28",
    "2020-09-29",
    "2020-09-30",
    "2020-10-01",
    "2020-10-02",
    "2020-10-03",
    "2020-10-04",
  ];

  console.log(dates);
  //Resulting in: ['2020-09-27', '2020-09-28', '2020-09-29', '2020-09-30', '2020-10-01', '2020-10-02', '2020-10-03', '2020-10-04']
  res.render("requests/...", 
    dates
  });
}
  

Однако на стороне клиента со следующим выражением я получаю разные значения.

 <script>
console.log({{ dates }})
//Resulting in:  1984 1983 1982 1981 2009 2008 2007 2006
</script>
  

Я что-то упустил? Как я могу отобразить правильно отформатированную дату?

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

1. Проблема заключалась в том, что он вычитал числа, а не отображал строку

Ответ №1:

Что произойдет, если вы визуализируете <p>{{dates}}</p> , а не регистрируете его в консоли? В любом случае, вы, вероятно, захотите выполнить итерацию по массивам для рендеринга при использовании handlebars. Это делается с помощью #each .

 <ul>
  {{ #each dates}}
    <li>{{this}}</li>
  {{/each}}
</ul>