Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组传递到视图而不使用html编码问题节点js(把手)_Javascript_Node.js_Handlebars.js - Fatal编程技术网

Javascript 将数组传递到视图而不使用html编码问题节点js(把手)

Javascript 将数组传递到视图而不使用html编码问题节点js(把手),javascript,node.js,handlebars.js,Javascript,Node.js,Handlebars.js,我正在调用yahoo finance api,该api返回一个csv。然后我想将csv文件转换为一个数组,google charts可以读取该数组。问题是当我将数组传递给视图时,它有一堆html编码的字符 例如,我想传递数组: [['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]] 但是当呈现页面时,它会抛出一个错误,传递的数组如下所示: [[

我正在调用yahoo finance api,该api返回一个csv。然后我想将csv文件转换为一个数组,google charts可以读取该数组。问题是当我将数组传递给视图时,它有一堆html编码的字符

例如,我想传递数组:

[['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]]
但是当呈现页面时,它会抛出一个错误,传递的数组如下所示:

[['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]]
var data = google.visualization.arrayToDataTable([
    ['Year', 'Income', 'Expenses', 'Profit'],
    ['2014', 1000, 400, 200],
    ['2015', 1170, 460, 250],
    ['2016', 660, 1120, 300],
    ['2017', 1030, 540, 350]
]);
这是我的index.js:

var router = require('express').Router();

function GetCompanyInformation(callback) {
    var request = require('request');
    request('http://table.finance.yahoo.com/table.csv?s=orcl&a=0&b1&c=2010&d=0&e=1&f=2011&g=d&y=0&z=orcl', function (error, response, data) {
        if (!error && response.statusCode == 200) {
            return callback(null,data);
        }
        return callback('An error has occurred.',null);
    })
}

/* GET home page. */
router.get('/', function(req, res, next) {
    GetCompanyInformation(function(err, data){
        res.render('index', {
            title: 'Express',
            data : "[['Year', 'Sales', 'Expenses'],['2004',1000,400],['2005',1170,460],['2006',660,1120],['2007',1030,540]]"
        });
    });
});
module.exports = router;
以下是我的看法:

<div class="container">
    <div class="row">
        <h1>{{ title }}</h1>
        <hr>
        <div id="stock-chart-container" class="col-lg-12">
            <h3>Item Name</h3>
            <hr>
            <div id="company-performance-chart"></div>
        </div>
    </div>
</div>

<script type="text/javascript">
    google.charts.load('current', {'packages':['corechart']});
    google.charts.setOnLoadCallback(drawChart);
    function drawChart() {

    var data = google.visualization.arrayToDataTable({{data}});

        var options = {
            chart: {
                title: 'Company Performance',
                subtitle: 'Sales, Expenses, and Profit: 2014-2017',
            }
        };

        var chart = new google.charts.Bar(document.getElementById('company-performance-chart'));

        chart.draw(data, options);
    }

    <!--RESIZE THE GOOGLE CHART (MAKES IT RESPONSIVE)-->
    $(window).resize(function(){
        drawChart();
    });
</script>
我是不是走错了路

@James当我将其作为数组传递时,我在渲染视图中得到:

var data = google.visualization.arrayToDataTable(Year,Sales,Expenses,2004,1000,400,2005,1170,460,2006,660,1120,2007,1030,540);

使用
{{}}
而不是
{{}}

您的数据属性是一个字符串,而不是一个数组(它以双引号开头)。我已尝试删除引号,使其成为一个数组,但传递不正确。请解释原因?这肯定有助于改进这一答案。