Node.js : how to pass parameter's value from terminal to JS script
给定基于
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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 CODE * * * * * * * * * * * * * * * * * * * * * * * * function (err, window) { var svg = window.d3.select("body") .append("svg") .attr("width", 100) .attr("height", 100); svg.append("rect") .attr("id","rect1") .attr("x", 10) .attr("y", 10) .attr("width", 80) .attr("height", 80) .style("fill","green"); // END svg design //PRINTING OUT SELECTION console.log(window.d3.select("body").html()); } // END (D3JS) * * * * * * * * * * * * * * * * * * * * * * * * ); |
假设我使用nodejs终端命令运行它并生成一个
1 | node svgcreator.node.js > output.svg # nodeJS + script command |
如何将参数值从终端传递到nodejs?
测试依赖项:
- svgCreator.node.js Github存储库:
git clone '[email protected]:hugolpz/svgcreator.node.js.git' 。 - 需要jsdom,使用:
sudo npm install -g jsdom (全局)。
使用的解决方案(@matt_harrison):我们依赖于
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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 CODE * * * * * * * * * * * * * * * * * * * * * * * * function (err, window) { var color = process.env.COLOR; // <<################# IMPORTANT !! var svg = window.d3.select("body") .append("svg") .attr("width", 100) .attr("height", 100); svg.append("rect") .attr("id","rect1") .attr("x", 10) .attr("y", 10) .attr("width", 80) .attr("height", 80) .style("fill", color); // <<################# IMPORTANT !! // END svg design //PRINTING OUT SELECTION console.log(window.d3.select("body").html()); } // END (D3JS) * * * * * * * * * * * * * * * * * * * * * * * * ); |
终端节点命令:
1 | COLOR=#66AAFF node svgcreator.node.js > out.svg # <<############# IMPORTANT !! setting the value. |
+1@Matt_Harrison回答并感谢提问!
在终端中,可以使用环境变量:
1 | $ COLOR=#FFFFFF node jsdom.node.js |
在您的JS中,DO:
1 | var color = process.env.COLOR; |
或者可以向命令添加其他参数:
1 | $ node jsdom.node.js '#FFFFFF' |
在您的JS中:
1 | var color = process.argv[2]; |
如果你想使用一个图书馆,我建议你去最小的图书馆,或者指挥官那里寻找一个更全面的解决方案。