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!

Antworten auf die Frage(0)

Ihre Antwort auf die Frage