Node.js: Übergabe des Parameterwerts vom Terminal an das JS-Skript
Angenommenjsdom
basierendsvgcreator.node.js
Skriptdatei :
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) * * * * * * * * * * * * * * * * * * * * * * * *
);
Dazu verwende ich den Terminalbefehl NodeJS, um ihn auszuführen und einen zu generierenoutput.svg
Datei :
node svgcreator.node.js > output.svg # nodeJS + script command
Wie übergebe ich den Wert eines Parameters vom Terminal an NodeJS?
Abhängigkeiten für Tests:
svgcreator.node.js Github-Repository:git clone '[email protected]:hugolpz/svgcreator.node.js.git'
jsdom benötigt, benutze:sudo npm install -g jsdom
(global).Verwendete Lösung (@Matt_Harrison): wir verlassen uns aufprocess.env.myVar
svgcreator.node.js
JS-Code:
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) * * * * * * * * * * * * * * * * * * * * * * * *
);
Terminal NodeJS Befehl:
COLOR=#66AAFF node svgcreator.node.js > out.svg # <<############# IMPORTANT !! setting the value.
+1 @Matt_Harrison Antwort und die Frage geschätzt!