2016-02-13 99 views
0

index.js傳遞變量從服務器端向客戶端的JavaScript Node.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文件中的結果

回答

0

您可以使用

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,這實際上可能是你的根本問題。

+0

/var data = [{「label」:「1990」,「value」:16}, {「label」:「1995」,「value」:16}, ] */ var data ; (data.json),function(error,json){ if(error){return console.log(error);} else {data = json; console.log(「data updated in graph。 js「);} }); data.json文件被更新,但目前還沒有結果 圖:<%=gdata%> <腳本類型= 「文/ JavaScript的」 SRC = 「/ JavaScript的/ graph.js」>你說的是什麼意思 – Shah038

+0

@ Shah038「有沒有結果」 ? –

+0

我不能在graph.ejs中看到 的結果,但是當我使用舊的數據變量時,我可以看到結果圖。 – Shah038

相關問題