2017-06-22 71 views
0

我triying要在一個的NodeJS圖highcharts,我已經通過NPM安裝它。 我正在嘗試一個基本的圖表,但它給了我這個錯誤。Highchart基本使用圖表的NodeJS

TypeError: Cannot read property 'navigator' of undefined 
    at /opt/node/project/node_modules/highcharts/modules/exporting.js:9:325 
    at /opt/node/project/node_modules/highcharts/modules/exporting.js:27:171 
    at Object.<anonymous> (/opt/node/project/actions/mailrequest.js:3:40) 
    at Module._compile (module.js:570:32) 
    at Object.Module._extensions..js (module.js:579:10) 
    at Module.load (module.js:487:32) 
    at tryModuleLoad (module.js:446:12) 
    at Function.Module._load (module.js:438:3) 
    at Module.runMain (module.js:604:10) 
    at run (bootstrap_node.js:390:7) 

這裏是我的代碼,這是一個js:

var Highcharts = require('highcharts'); 
require('highcharts/modules/exporting')(Highcharts); 


var chart = Highcharts.chart('container', { 

    series: [{ 
     name: 'Installation', 
     data: htmldata 
    }, { 
     name: 'Manufacturing', 
     data: [htmldata] 
    }, { 
     name: 'Sales & Distribution', 
     data: [htmldata] 
    }, { 
     name: 'Project Development', 
     data: [null, null, 7988, 12169, 15112, 22452, 34400, 34227] 
    }, { 
     name: 'Other', 
     data: [htmldata] 
    }] 

}); 

我搜索了這一點,顯然是因爲節點,但我不知道,這是相當不尋常。

希望你能幫上忙。謝謝。 如果你是,你能幫我通過電子郵件發送這樣的圖形,我可以發送一個基本的郵件,但我想發送圖表。 我已經有一個數組來製作圖形。任何幫助,將不勝感激。

+0

什麼版本的Node和Highcharts? –

+0

Highcharts基本上是一個瀏覽器圖表庫 - 所以它需要DOM才能生成圖表。除非在節點中使用某種DOM實現(例如jsdom),否則無法創建圖表。但是,您可以使用導出API並從服務器發送選項 - 請參閱此處的文檔https://www.highcharts.com/docs/export-module/export-module-overview您還可以使用節點epxorting服務器https:// github.com/highcharts/node-export-server – morganfree

回答

0

這是我第一次回答SO問題,但我設法解決這個問題「類型錯誤:無法讀取性能‘同時創建從Highcharts網站基本圖表’未定義」領航員。我遵循@morganfree說明'基本上,Highcharts是一個瀏覽器圖表庫 - 因此它需要DOM才能生成圖表。除非在節點中使用某種DOM實現(例如jsdom),否則無法創建圖表。 」。請記住,這適用於最基本的圖表實現。您可能需要更深入地探究其他類型圖表的jsdom。

的措施來解決:

  1. 下載故宮節點jsdom包 - https://www.npmjs.com/package/node-jsdom

  2. 將此代碼粘貼到您運行啓動程序的主文件。

    const jsdom = require("node-jsdom"); 
    
    jsdom.env(
        "https://code.highcharts.com/highcharts.js", 
        ["http://code.jquery.com/jquery.js"], 
        function (errors, window) { 
        console.log("there have been", window.$("a").length, "nodejs 
        releases!"); 
    } 
    ); 
    
  3. 按照這個鏈接步驟1 & 2 - https://www.highcharts.com/docs/getting-started/your-first-chart

  4. 重新渲染HTML頁面,你應該看到默認的圖表Hghcharts提供。 :D希望這有助於。

PS。閱讀node-jsdom文檔以查看代碼片段的功能。