Έχω έναν διακομιστή ιστού γραμμένο σε Node.js και θα ήθελα να τον εκκινήσω με έναν συγκεκριμένο φάκελο. Δεν είμαι σίγουρος για το πώς μπορώ να έχω πρόσβαση σε επιχειρήματα στην JavaScript. Εκτελώ τον κόμβο ως εξής: I'm running node like this:
$ node server.js folder
Εδώ το server.js
είναι ο κώδικας του διακομιστή μου. Η βοήθεια του Node.js λέει ότι αυτό είναι δυνατό:
$ node -h
Usage: node [options] script.js [arguments]
Πώς θα είχα πρόσβαση σε αυτά τα ορίσματα σε JavaScript; Με κάποιο τρόπο δεν μπόρεσα να βρω αυτές τις πληροφορίες στο διαδίκτυο.
Τα ορίσματα αποθηκεύονται στο αρχείο process.argv
.
Ακολουθούν τα έγγραφα του κόμβου για το χειρισμό των args της γραμμής εντολών:
Το
process.argv
είναι ένας πίνακας που περιέχει τα ορίσματα της γραμμής εντολών. Το πρώτο στοιχείο θα είναι το 'node', το δεύτερο στοιχείο θα είναι το όνομα του αρχείου JavaScript. Τα επόμενα στοιχεία θα είναι τυχόν πρόσθετα ορίσματα της γραμμής εντολών.
// print process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
Αυτό θα δημιουργήσει:
$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four
Για να ομαλοποιήσω τα ορίσματα όπως θα λάμβανε μια κανονική συνάρτηση javascript, το κάνω αυτό στα σενάρια κελύφους node.js:
var args = process.argv.slice(2);
Σημειώστε ότι το πρώτο arg είναι συνήθως η διαδρομή προς το nodejs και το δεύτερο arg είναι η τοποθεσία του script που εκτελείτε.
Ελέγξτε την optimist library, είναι πολύ καλύτερη από την ανάλυση των επιλογών της γραμμής εντολών με το χέρι.
Ενημέρωση
Το Optimist έχει ξεπεραστεί. Δοκιμάστε το yargs το οποίο είναι ένα ενεργό fork του optimist.