【问题标题】:Passing variable from Server side to client side JavaScript Node.js将变量从服务器端传递到客户端 JavaScript Node.js
【发布时间】:2016-02-13 12:23:29
【问题描述】:

index.js

var outputFilename = 'C:/askhere/public/javascripts/data.json';
                    fs.writeFile( outputFilename, JSON.stringify(json_obj), "utf8", function(err) {
                        if(err) {
                            console.log(err);
                        } else {
                            console.log("Jobs Data updated in " + outputFilename + " file.");
                        }
                    });
res.render('graph',{uname:req.session.userName,gdata:JSON.stringify(json_obj)});

graph.ejs

                    <script type="text/javascript" src="/javascripts/graph.js">

                    </script>

graph.js

            /*var data = [{"label":"1990", "value":16},
    {"label":"1991", "value":56},
    {"label":"1995", "value":16},
];    var data;
    d3.json("data.json", function(error, json) {
        if (error) {return console.log(error);}
        else {data = json; console.log("data updated in graph.js");}
    });

现在这段代码在 graph.js 文件中从服务器获取“数据”更新,但我在 graph.ejs 文件中看不到结果

【问题讨论】:

    标签: javascript node.js d3.js ejs


    【解决方案1】:

    你可以使用

     d3.json('http://domain.com/data.json', function(data) {
         // actual logic...
    });
    

    从服务器访问以 json 格式提供的数据。

    否则你也可以添加内联脚本:

    <script type="text/javascript">
         var data = <%=gdata%>;
    </script>
    

    旁注:你不能有带有 src 属性的内联脚本

    <script type="text/javascript" src="/javascripts/graph.js">
        var data = <%=gdata%>; // This code will be discarded
    </script>
    

    另外,我建议您阅读此question,这实际上可能是您的根本问题。

    【讨论】:

    • /*var data = [{"label":"1990", "value":16}, {"label":"1995", "value":16}, ];*/变量数据; d3.json("data.json", function(error, json) { if (error) {return console.log(error);} else {data = json; console.log("data updated in graph.js") ;} }); data.json 文件已更新,但没有结果 Graph :
    • @Shah038 “没有结果”是什么意思?
    • 我在 graph.ejs 中看不到 的结果,但是当我使用旧数据变量时我可以看到结果图。
    • 你能用实际的 d3.js 代码更新你的问题吗?创建图表的人
    • 您的问题是您不能只分配data = json,您必须将所有代码保留在function(error, json) {} 回调中
    猜你喜欢
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    • 2018-05-04
    • 2016-06-17
    • 1970-01-01
    相关资源
    最近更新 更多