NODE.JS - obter o retorno de uma string na minha view

Boa noite pessoal, estou com a seguinte situação…
eu montei uma consulta sql que me retorna um array de objetos e converti para string. minha duvida é, como faço para pegar essa string na minha view?

envia como array e recupera, depois vai desestruturando.


Caso ainda queira uma string, é só vc pegar o que o banco tá retornando, tipo

const result = api.get('teste')
console.log(result.data);

na verdade eu preciso que venha como array de objetos mesmo.pq irei passar como parâmetro para uma função javascript irá renderizar um gráfico.

pode fazer do jeito que mencionei acima e preencher o seu chart com um .map se necessário

estou tentando fazer aqui mas estou tendo dificuldades…
vou postar o código pra ver se alguém consegue me ajudar…

no meu controller estou fazendo isso…

router.get("/Dashboards",adminAuth,(req,res)=>{
    sequelize.query(`

        SELECT DISTINCT
        (SELECT STUFF(
                        (SELECT ', ' +'['+''''+DESCRICAO+'''' +', ' +LTRIM(RTRIM(CAST(COUNT(*) AS CHAR))+']')
                        FROM QRCODE
                        INNER JOIN SETOR ON SETOR.ID_SETOR=QRCODE.ID_SETOR
                        GROUP BY DESCRICAO
                        FOR XML PATH ('')) , 1, 1, '')) AS DADOS
        FROM QRCODE
        INNER JOIN SETOR ON SETOR.ID_SETOR=QRCODE.ID_SETOR
        GROUP BY DESCRICAO
    `).then(dashboards => {
      
        res.render("Dashboard/dashboards",{ dashboards: JSON.stringify(dashboards[0]) });

    });
});


na minha view estou pegando assim...
   window.addEventListener('load', function() {

   console.log('<%=dashboards%>');
  

     var data ='<%=dashboards%>';
	 drawChart(data);});
 
    
   </script>

a minha ideia é passar essa strutura pra dentro da função drachart();

[

       ['Task', 'teste'],
       ['Work',     11],
       ['Eat',      2],
       ['Commute',  2],
       ['Watch TV', 2],
       ['Sleep',    7],
     ]

estou fazendo assim, mas está dando erro…

   <script>


   window.addEventListener('load', function() {

      var data = [['Setor', 'Quantidade'],
      `<%dashboards.forEach(dashboards => {%>
         
         [<%= dashboards.DESCRICAO%>, <%= dashboards.TOTAL%>],
      <% }) %>`
     
       ]
       console.log(data);
	 drawChart(data);});
 
    
   </script>

Tá usando Jade no front?


Que erro tá dando?

estou utilizando javascript…
até então consegui montar o array,mas mesmo assim está dando erro. o engraçado que quando passo o mesmo array dentro da função drawChart o gráfico é exibido.

   window.addEventListener('load', function() {

      var data = [ `<%dashboards.forEach(dashboards => {%>['<%= dashboards.DESCRICAO%>', '<%= dashboards.TOTAL%>'],<% }) %>`
       ]
       v = JSON.stringify(data).replace(/\\n/g,'').replace(/[\\r]/g,' ').replace(/[\\"]/g, '').replaceAll(`'`,`"`)
       console.log(v);

    //   v = [['EMERGENCIA12', '6'],['TESTE2', '2'],]
    drawChart(v);
   });![erro|651x500](upload://q6UR0TxXU5u02IVnNnemMzy0R4.png)

Mostra o que tem em drawChart

google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart(data) {
  
   
   data = google.visualization.arrayToDataTable(data);

  var options = {
    title: 'Registro Por Setor',
    is3D: true,
  };
  
  var chart = new google.visualization.PieChart(document.getElementById('piechart_3d'));
  chart.draw(data, options);
}

Tenta trocar isso

data = google.visualization.arrayToDataTable(data);

por isso:

data = google.visualization.arrayToDataTable(JSON.parse(chartData));

fiz isso q continua o mesmo erro.
:\

Certo, o problema que tá rolando aí é que vc não tá passando um array pra o chart, por isso ta dando esse erro