Schreiben und Ausführen Ihres ersten Programms in Node.js

Der Autor hat Open Internet / Free Speech Fund ausgewählt, um eine Spende im Rahmen von https://do.co/w4do-cta zu erhalten [Write for DOnations] program.

Einführung

Node.js ist eine beliebte Open-Source-Laufzeitumgebung, mit der JavaScript außerhalb des Browsers mithilfe der V8-JavaScript-Engine ausgeführt werden kann. Dies ist dieselbe Engine, mit der auch die JavaScript-Ausführung des Google Chrome-Webbrowsers ausgeführt wird. Die Node-Laufzeit wird häufig zum Erstellen von Befehlszeilentools und Webservern verwendet.

Wenn Sie Node.js lernen, können Sie Ihren Front-End-Code und Ihren Back-End-Code in derselben Sprache schreiben. Durch die Verwendung von JavaScript im gesamten Stapel können Sie die Zeit für das Wechseln des Kontexts verkürzen, und Bibliotheken können einfacher zwischen Ihrem Back-End-Server und Front-End-Projekten ausgetauscht werden.

Dank seiner Unterstützung für asynchrone Ausführung ist Node.js auch für E / A-intensive Aufgaben hervorragend geeignet, was es für das Web so geeignet macht. Echtzeitanwendungen wie Video-Streaming oder Anwendungen, die kontinuierlich Daten senden und empfangen, können in Node.js effizienter ausgeführt werden.

In diesem Tutorial erstellen Sie Ihr erstes Programm mit der Node.js-Laufzeit. Sie erhalten eine Einführung in einige knotenspezifische Konzepte und können ein Programm erstellen, mit dem Benutzer Umgebungsvariablen auf ihrem System überprüfen können. Dazu lernen Sie, wie Sie Zeichenfolgen an die Konsole ausgeben, Eingaben vom Benutzer erhalten und auf Umgebungsvariablen zugreifen.

Voraussetzungen

Um dieses Tutorial abzuschließen, benötigen Sie:

Schritt 1 - Ausgabe an die Konsole

Um ein "Hello, World!" - Programm zu schreiben, öffnen Sie einen Befehlszeilentexteditor wie "+ nano +" und erstellen Sie eine neue Datei:

nano hello.js

Geben Sie bei geöffnetem Texteditor den folgenden Code ein:

hallo.js

console.log("Hello World");

Das + console + -Objekt in Node.js bietet einfache Methoden zum Schreiben in + stdout +, + stderr + oder in einen beliebigen anderen Node.js-Stream, bei dem es sich in den meisten Fällen um die Befehlszeile handelt. Die Methode "+ log" wird im Stream "+ stdout" gedruckt, sodass Sie ihn in Ihrer Konsole sehen können.

Im Kontext von Node.js sind streams Objekte, die entweder Daten empfangen können, wie z. B. der Stream "+ stdout ", oder Objekte, die Daten ausgeben können, wie z. B. ein Netzwerk-Socket oder eine Datei. Bei den Streams " stdout " und " stderr +" werden alle an sie gesendeten Daten in der Konsole angezeigt. Streams lassen sich besonders einfach umleiten. In diesem Fall können Sie die Ausgabe Ihres Programms beispielsweise in eine Datei umleiten.

Speichern und beenden Sie "+ nano ", indem Sie " STRG + X " drücken. Wenn Sie aufgefordert werden, die Datei zu speichern, drücken Sie " Y +". Jetzt kann Ihr Programm ausgeführt werden.

Schritt 2 - Ausführen des Programms

Verwenden Sie zum Ausführen dieses Programms den Befehl + node + wie folgt:

node hello.js

Das Programm + hello.js + führt die folgende Ausgabe aus und zeigt sie an:

Output Hello World

Der Node.js-Interpreter hat die Datei gelesen und "+ console.log" ("Hello World") ausgeführt, indem er die "+ log " -Methode des globalen " console " -Objekts aufrief. Der String "" Hello World "" wurde als Argument an die Funktion " log +" übergeben.

Obwohl im Code Anführungszeichen erforderlich sind, um anzuzeigen, dass der Text eine Zeichenfolge ist, werden sie nicht auf dem Bildschirm gedruckt.

Nachdem Sie bestätigt haben, dass das Programm funktioniert, können Sie es interaktiver gestalten.

Schritt 3 - Empfangen von Benutzereingaben über Befehlszeilenargumente

Jedes Mal, wenn Sie das Programm "Hello, World!" Von Node.j ausführen, wird dieselbe Ausgabe ausgegeben. Um das Programm dynamischer zu gestalten, lassen Sie uns Eingaben vom Benutzer abrufen und auf dem Bildschirm anzeigen.

Befehlszeilentools akzeptieren häufig verschiedene Argumente, die ihr Verhalten ändern. Wenn Sie beispielsweise + node + mit dem Argument + - version + ausführen, wird die installierte Version ausgegeben, anstatt den Interpreter auszuführen. In diesem Schritt veranlassen Sie Ihren Code, Benutzereingaben über Befehlszeilenargumente zu akzeptieren.

Erstelle eine neue Datei + arguments.js + mit nano:

nano arguments.js

Geben Sie den folgenden Code ein:

arguments.js

console.log(process.argv);

Das Objekt + process + ist ein global Node.js-Objekt, das Funktionen und Daten enthält, die sich alle auf den aktuell ausgeführten Node.js-Prozess beziehen. Die Eigenschaft + argv + ist ein Array von Zeichenfolgen, die alle Befehlszeilenargumente enthalten, die einem Programm übergeben wurden.

Speichern und beenden Sie "+ nano ", indem Sie " STRG + X " eingeben. Wenn Sie aufgefordert werden, die Datei zu speichern, drücken Sie " Y +".

Wenn Sie dieses Programm jetzt ausführen, geben Sie ein Befehlszeilenargument wie das folgende ein:

node arguments.js hello world

Die Ausgabe sieht folgendermaßen aus:

Output [ '/usr/bin/node',
 '/home//first-program/arguments.js',
 'hello',
 'world' ]

Das erste Argument im Array "+ process.argv " ist immer der Speicherort der Node.js-Binärdatei, auf der das Programm ausgeführt wird. Das zweite Argument ist immer der Speicherort der ausgeführten Datei. Die restlichen Argumente sind die, die der Benutzer eingegeben hat, in diesem Fall: " Hallo " und " Welt +".

Wir sind hauptsächlich an den vom Benutzer eingegebenen Argumenten interessiert, nicht an den von Node.js bereitgestellten Standardargumenten. Öffnen Sie die Datei + arguments.js zum Bearbeiten:

nano arguments.js

Ändern Sie + console.log (process.arg); + in Folgendes:

arguments.js

console.log(process.argv.);

Da "+ argv " ein Array ist, können Sie die in JavaScript integrierte " slice " - Methode verwenden, die eine Auswahl von Elementen zurückgibt. Wenn Sie die Funktion " slice " mit " 2 " als Argument angeben, erhalten Sie alle Elemente von " argv +", die nach dem zweiten Element stehen. das sind die Argumente, die der Benutzer eingegeben hat.

Führen Sie das Programm mit dem Befehl + node + und den gleichen Argumenten wie beim letzten Mal erneut aus:

node arguments.js hello world

Die Ausgabe sieht nun so aus:

Output [ 'hello', 'world' ]

Nachdem Sie nun die Benutzereingaben erfassen können, lassen Sie uns die Eingaben aus der Programmumgebung erfassen.

Schritt 4 - Zugriff auf Umgebungsvariablen

Umgebungsvariablen sind Schlüsselwertdaten, die außerhalb eines Programms gespeichert und vom Betriebssystem bereitgestellt werden. Sie werden normalerweise vom System oder Benutzer festgelegt und stehen allen laufenden Prozessen für Konfigurations- oder Statuszwecke zur Verfügung. Sie können das Node + process-Objekt verwenden, um darauf zuzugreifen.

Verwenden Sie + nano + um eine neue Datei zu erstellen + environment.js +:

nano environment.js

Fügen Sie den folgenden Code hinzu:

environment.js

console.log(process.env);

Das + env + - Objekt speichert alle Umgebungsvariablen, die verfügbar sind, wenn Node.js das Programm ausführt.

Speichern und beenden Sie wie zuvor und führen Sie die Datei + environment.js mit dem Befehl` + node n` aus.

node environment.js

Nach dem Ausführen des Programms sollte eine Ausgabe ähnlich der folgenden angezeigt werden:

Output{ SHELL: '/bin/bash',
 SESSION_MANAGER:
  'local/digitalocean:@/tmp/.ICE-unix/1003,unix/digitalocean:/tmp/.ICE-unix/1003',
 COLORTERM: 'truecolor',
 SSH_AUTH_SOCK: '/run/user/1000/keyring/ssh',
 XMODIFIERS: '@im=ibus',
 DESKTOP_SESSION: 'ubuntu',
 SSH_AGENT_PID: '1150',
 PWD: '/home/sammy/first-program',
 LOGNAME: 'sammy',
 GPG_AGENT_INFO: '/run/user/1000/gnupg/S.gpg-agent:0:1',
 GJS_DEBUG_TOPICS: 'JS ERROR;JS LOG',
 WINDOWPATH: '2',
 HOME: '/home/sammy',
 USERNAME: 'sammy',
 IM_CONFIG_PHASE: '2',
 LANG: 'en_US.UTF-8',
 VTE_VERSION: '5601',
 CLUTTER_IM_MODULE: 'xim',
 GJS_DEBUG_OUTPUT: 'stderr',
 LESSCLOSE: '/usr/bin/lesspipe %s %s',
 TERM: 'xterm-256color',
 LESSOPEN: '| /usr/bin/lesspipe %s',
 USER: 'sammy',
 DISPLAY: ':0',
 SHLVL: '1',
 PATH:
  '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin',
 DBUS_SESSION_BUS_ADDRESS: 'unix:path=/run/user/1000/bus',
 _: '/usr/bin/node',
 OLDPWD: '/home/sammy' }

Beachten Sie, dass viele der Umgebungsvariablen, die Sie sehen, von der Konfiguration und den Einstellungen Ihres Systems abhängen und Ihre Ausgabe möglicherweise wesentlich anders aussieht als die hier gezeigten. Anstatt eine lange Liste von Umgebungsvariablen anzuzeigen, möchten Sie möglicherweise eine bestimmte abrufen.

Schritt 5 - Zugriff auf eine bestimmte Umgebungsvariable

In diesem Schritt zeigen Sie Umgebungsvariablen und ihre Werte mit dem globalen Objekt "+ process.env +" an und geben ihre Werte an der Konsole aus.

Das Objekt "+ process.env +" ist eine einfache Zuordnung zwischen Umgebungsvariablennamen und ihren als Zeichenfolgen gespeicherten Werten. Wie bei allen Objekten in JavaScript greifen Sie auf eine einzelne Eigenschaft zu, indem Sie ihren Namen in eckigen Klammern angeben.

Öffnen Sie die Datei + environment.js + zum Bearbeiten:

nano environment.js

Ändern Sie + console.log (process.env); + in:

environment.js

console.log(process.env);

Speichern Sie die Datei und beenden Sie sie. Führen Sie nun das Programm + environment.js + aus:

node environment.js

Die Ausgabe sieht jetzt so aus:

Output /home/

Anstatt das gesamte Objekt zu drucken, drucken Sie jetzt nur die Eigenschaft "+ HOME " von " process.env ", die den Wert der Umgebungsvariablen " $ HOME +" speichert.

Denken Sie auch hier daran, dass sich die Ausgabe dieses Codes wahrscheinlich von der hier gezeigten unterscheidet, da sie für Ihr System spezifisch ist. Nachdem Sie die abzurufende Umgebungsvariable angegeben haben, können Sie Ihr Programm erweitern, indem Sie den Benutzer nach der Variablen fragen, die angezeigt werden soll.

Schritt 6 - Abrufen eines Arguments als Antwort auf Benutzereingaben

Als Nächstes können Sie Befehlszeilenargumente und Umgebungsvariablen lesen, um ein Befehlszeilendienstprogramm zu erstellen, das den Wert einer Umgebungsvariablen auf dem Bildschirm ausgibt.

Verwenden Sie + nano +, um eine neue Datei zu erstellen + echo.js +:

nano echo.js

Fügen Sie den folgenden Code hinzu:

echo.js

const args = process.argv.slice(2);
console.log(process.env[args[0]]);

In der ersten Zeile von "+ echo.js " werden alle vom Benutzer angegebenen Befehlszeilenargumente in einer konstanten Variablen mit dem Namen " args " gespeichert. Die zweite Zeile gibt die Umgebungsvariable aus, die im ersten Element von ` args +` gespeichert ist. Dies ist das erste Befehlszeilenargument, das der Benutzer angegeben hat.

Speichern und beenden Sie + nano + und führen Sie das Programm wie folgt aus:

node echo.js HOME

Nun wäre die Ausgabe:

Output /home/

Das Argument "+ HOME " wurde im Array " args " gespeichert, das dann verwendet wurde, um seinen Wert in der Umgebung über das Objekt " process.env +" zu ermitteln.

Jetzt können Sie auf den Wert einer beliebigen Umgebungsvariablen in Ihrem System zugreifen. Um dies zu überprüfen, versuchen Sie, die folgenden Variablen anzuzeigen: "+ PWD", "+ USER", "+ PATH".

Das Abrufen einzelner Variablen ist gut, aber es ist besser, den Benutzer angeben zu lassen, wie viele Variablen er haben möchte.

Schritt 7 - Anzeigen mehrerer Umgebungsvariablen

Derzeit kann die Anwendung jeweils nur eine Umgebungsvariable überprüfen. Es wäre nützlich, wenn wir mehrere Befehlszeilenargumente akzeptieren und ihren entsprechenden Wert in der Umgebung abrufen könnten. Verwenden Sie + nano +, um + echo.js + zu bearbeiten:

nano echo.js

Bearbeiten Sie die Datei so, dass sie stattdessen den folgenden Code enthält:

echo.js

const args = process.argv.slice(2);

Die Methode "+ forEach " ist eine Standard-JavaScript-Methode für alle Array-Objekte. Es akzeptiert eine Rückruffunktion, die verwendet wird, wenn es über jedes Element des Arrays iteriert. Sie verwenden " forEach " für das Array " args +" und stellen ihm eine Rückruffunktion zur Verfügung, die den Wert des aktuellen Arguments in der Umgebung ausgibt.

Speichern und schließen Sie die Datei. Führen Sie nun das Programm mit zwei Argumenten erneut aus:

node echo.js HOME PWD

Sie würden die folgende Ausgabe sehen:

Output /home/
/home//first-program

Die Funktion "+ forEach " stellt sicher, dass jedes Befehlszeilenargument im Array " args +" gedruckt wird.

Jetzt haben Sie die Möglichkeit, die vom Benutzer angeforderten Variablen abzurufen. Wir müssen jedoch weiterhin den Fall behandeln, in dem der Benutzer fehlerhafte Daten eingibt.

Schritt 8 - Behandlung nicht definierter Eingaben

Um zu sehen, was passiert, wenn Sie dem Programm ein Argument geben, das keine gültige Umgebungsvariable ist, führen Sie Folgendes aus:

node echo.js HOME PWD NOT_DEFINED

Die Ausgabe sieht ungefähr so ​​aus:

Output /home/
/home//first-program
undefined

Die ersten beiden Zeilen werden wie erwartet gedruckt, und die letzte Zeile enthält nur "+ undefined". In JavaScript bedeutet ein "+ undefined " - Wert, dass einer Variablen oder Eigenschaft kein Wert zugewiesen wurde. Da " NOT_DEFINED " keine gültige Umgebungsvariable ist, wird sie als " undefined +" angezeigt.

Es ist für einen Benutzer hilfreicher, eine Fehlermeldung anzuzeigen, wenn sein Befehlszeilenargument nicht in der Umgebung gefunden wurde.

Öffne + echo.js + zum Bearbeiten:

nano echo.js

Bearbeiten Sie + echo.js + so, dass es den folgenden Code hat:

echo.js

const args = process.argv.slice(2);

args.forEach(arg => {
 let envVar = process.env[arg];





});

Hier haben Sie die Rückruffunktion, die für "+ forEach +" bereitgestellt wird, geändert, um die folgenden Dinge zu tun:

  1. Rufen Sie den Wert für die Befehlszeilenargumente in der Umgebung ab und speichern Sie ihn in einer Variablen "+ env Var".

  2. Überprüfen Sie, ob der Wert von "+ env Var" "+ undefiniert" ist.

  3. Wenn "+ envVar " " undefiniert +" ist, wird eine hilfreiche Meldung ausgegeben, die angibt, dass sie nicht gefunden wurde.

  4. Wenn eine Umgebungsvariable gefunden wurde, geben wir ihren Wert aus.

Führen Sie nun den folgenden Befehl noch einmal aus:

node echo.js HOME PWD NOT_DEFINED

Diesmal ist die Ausgabe:

Output /home/
/home//first-program
Could not find "NOT_DEFINED" in environment

Wenn Sie nun ein Befehlszeilenargument eingeben, das keine Umgebungsvariable ist, wird eine eindeutige Fehlermeldung angezeigt.

Fazit

In Ihrem ersten Programm wurde "Hello World" auf dem Bildschirm angezeigt. Jetzt haben Sie ein Befehlszeilendienstprogramm "Node.js" geschrieben, das Benutzerargumente zum Anzeigen von Umgebungsvariablen liest.

Wenn Sie dies weiterführen möchten, können Sie das Verhalten dieses Programms noch weiter verändern. Möglicherweise möchten Sie die Befehlszeilenargumente vor dem Drucken überprüfen. Wenn ein Argument nicht definiert ist, können Sie einen Fehler zurückgeben, und der Benutzer wird nur ausgegeben, wenn alle Argumente gültige Umgebungsvariablen sind.