Синтаксис для циклической обработки документов, отправляемых с экспресс-маршрутизатора, и использования его для построения диаграммы JS - PullRequest
0 голосов
/ 03 июля 2018

Я начинаю изучать узел js (экспресс js). Я пытаюсь построить диаграмму, используя данные, отправленные с базы данных mongo с помощью mongoose .... Я хотел бы зациклить документы, отправленные из базы данных, чтобы использовать их для построения данных. Я пытался использовать fetch api, но это не удалось из-за Passport req.user (он не распознал пользователя) вот мой код Буду признателен за любую помощь и приводит.

router.get('/mychart', loggedInYes, function (req, res, next) {
  Products.find({user:req.user._id},function (err,docs) {
    if (err)
      return err;
      res.render('user/mychart',{docs:docs});
    
    });
 });

и вот диаграмма JS, где я хотел бы использовать Документы

<canvas id="myChart" width="400" height="400"></canvas>
<script>
  var ctx = document.getElementById("myChart").getContext('2d');
  var myChart = new Chart(ctx, {
        type: 'bar',
        data: {
          labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
          datasets: [{
            label: '# of Votes',
            data: [{
                {#
                  each docs
                }
              } {
                {
                  this.docs.yearofbirth
                }
              } {
              {
                /each}}],
                backgroundColor: [
                    'rgba(255, 99, 132, 0.2)',
                    'rgba(54, 162, 235, 0.2)',
                    'rgba(255, 206, 86, 0.2)',
                    'rgba(75, 192, 192, 0.2)',
                    'rgba(153, 102, 255, 0.2)',
                    'rgba(255, 159, 64, 0.2)'
                  ],
                  borderColor: [
                    'rgba(255,99,132,1)',
                    'rgba(54, 162, 235, 1)',
                    'rgba(255, 206, 86, 1)',
                    'rgba(75, 192, 192, 1)',
                    'rgba(153, 102, 255, 1)',
                    'rgba(255, 159, 64, 1)'
                  ],
                  borderWidth: 1
              }]
            },
            options: {
              scales: {
                yAxes: [{
                  ticks: {
                    beginAtZero: true
                  }
                }]
              }
            }
          });
</script>

Проблема заключается в том, как циклически проходить данные .... data: [{ {# каждый документы } } { { this.docs.yearofbirth } } { { / Каждая}}],

1 Ответ

0 голосов
/ 04 июля 2018

Я решил это, включив объекты учетных данных в файл hbs клиента. Сработало

fetch('/api/foo', {credentials: 'include'})
...