由於JS腳本運行a D3js dynamic datavizNode.js:如何將JS變量的值從腳本傳遞給終端?
我目前使用打印出一個單一的視圖到output.svg
文件:
var jsdom = require('jsdom');
jsdom.env(
"<html><body></body></html>", // CREATE DOM HOOK:
[ 'http://d3js.org/d3.v3.min.js', // JS DEPENDENCIES online ...
'js/d3.v3.min.js' ], // ... & offline
// D3JS MAP DRAWING CODE * * * * * * * * * * * * * * * * * * *
function (err, window) {
var svg = window.d3.select("body")
.append("svg") // append svg on body
... // more D3js code
// END svg design
//PRINTING OUT SELECTION
console.log(window.d3.select("body").html());
}
// END (D3JS) * * * * * * * * * * * * * * * * * * * * * * * *
);
終端的NodeJS命令:
node svgcreator.node.js > output.svg
它的工作方式是,從svgcreator.node.js
腳本每個console.log()
消息被打印到文件output.svg
文件。由於D3js dataviz環繞全球,因此應該可以將每個視圖的一個console.log()
消息打印到正確命名的正確svg文件中。我應該從JS腳本到終端得到一個變量var country=...;
。然後,我可以做這樣的東西(?):
node svgcreator.node.js > $(JsVar.country).svg # nb: this var syntax if fictional
因此,只要執行console.log()消息來了,在消息打印與正確的名稱SVG文件。
另外,如何將JS變量的值從腳本傳遞給終端?
參見:Node.js : how to pass parameter's value from terminal to JS script
我剛剛嘗試在JS代碼中執行'process.env.country = currentCountryName;',然後是終端中的'node svgcreator.node.js> $ country.svg'變體,但沒有成功。 – Hugolpz 2014-09-02 21:20:35
似乎這是相當棘手:http://stackoverflow.com/questions/22681043/ – Hugolpz 2014-09-02 22:28:36
你只是在尋找一種方法來保存輸出到一個適當的命名文件?該文件是否需要通過shell中的標準輸出重定向來創建,或者節點本身是否可以創建該文件? – 2014-09-02 22:51:03