繁体   English   中英

处理变量与翡翠内部的nodejs一起发送

[英]Processing variables send with nodejs inside jade

我有一个脚本发送矩阵,例如[[1,2,3,4], [7,6,5,4], [2,3,4,5]] 当我使用res.send(JSON.stringify(dataArray));发送它时res.send(JSON.stringify(dataArray)); 并使用h1#results将其显示在翡翠中,我确实看到格式正确。

但是,我想在Google图表中使用此数据。 我的直觉是说要像这样显示数据: data.addRows = results; 但是事实并非如此,因为玉不了解我的意思是变量send。

我怀疑我不了解翡翠的一些基本原理。 我了解大多数jade / html是固定的,只有“ script”标记内的代码会执行,但据我所知,谷歌function drawChart() {)内的所有代码都在script标记内。

编辑

我的新ajax脚本:

    $(function() {
$('#search').on('keyup', function(e){
    if(e.keyCode === 13) {
        var parameters = { search: $(this).val()};
        $.get('/seraching', parameters, function(data) {
            $('#results').html(data);
            console.log('parsing json');
            var chartData = (data);
            console.log(chartData[0])
            drawChart(chartData, parameters.search);
        });
    }
});

});

因此,这里有几个问题在起作用。 首先,使用Express和Jade交付处理后的模板,使用带有搜索参数的AJAX获取一些数据,并使用Express路由根据您发送的搜索参数发送一些数据。

最初,您希望Express和Jade设置主页:

main.jade

html
    head
        script(src='googlechart.js')
        script(src='myJS.js')
    body
        title Title
        h1 Heading
        input("type='text', id='search'")
        button("id='submit'")

因此,在这里,我们确保加载了Google图表以及包含AJAX调用的JS。 我还包括了搜索参数的文本框。

在您的Express应用中,您将以如下方式呈现页面:

app.get('/', function (req, res) {
    res.render("main.jade");
});

myJS.js

首先设置图表对象。 然后,单击“提交”按钮时,请使用ajax数据属性中搜索字段的值。 兑现诺言后,显示结果。

var chart = new google.visualization.DataTable();
$('#submit').click(function () {
    var param = $('#search').val();
    $.ajax({
        url: '/getdata',
        dataType: 'JSON',
        data: { search: param }
    }).done(function (data) {

        // note that jQuery automatically parses JSON for you
        chart.addRows(data);
    });
});

但! 为此,您需要在Express中设置一条路由来处理AJAX调用,如下所示:

app.get('/getdata', function (req, res) {
    var param = req.param('search');

    // filter data by search param

    res.send(JSON.stringify(data));
});

因此,只需要一次Jade即可设置主模板。 提交AJAX请求时,您需要传递Express路由来传递JSON数据。

希望这是一个更好的答案:)哦,这里可能有一些错别字,因为我有一段时间没有使用Express了,但是我敢肯定这是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM