Node.js-Tutorium: Hello World: Konsole: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Keine Bearbeitungszusammenfassung
Zeile 14: Zeile 14:


* Node.js: http://nodejs.org/
* Node.js: http://nodejs.org/
===Anmerkungen zur Git-Bash unter Windows===
In der Git-Bash können Sie mit den Cursortasten „nach oben“ und „nach unten“ zwischen den schon eingebenen Bash-Befeheln hin und her blättern.
In die Git-Bash können Bash-Befehle allerdings nur etwas umständlich per Copy und Paste eingefügt werden:
* Bash-Befehl per <code>Strg-c</code> aus dem Tutorial kopieren.
* Klick auf das kleine Icon in der linken oberen Ecke des Bash-Fensters
* Klick auf <code>Bearbeiten</code>
* Klick auf <code>Einfügen</code>
Auch beim Aufruf des Linux-Editors <code>vi</code> von der Bash-Konsole aus muss man diesen umständlichen Weg gehen.
Wenn allerdings die Node.js-Konsole läuft (siehe nächsten Abschnitt),
geht es etwa einfacher:
* JavaScript-Befehl per <code>Strg-c</code> kopieren.
* Rechtsklick in die Node.js-Konsole
* Klick auf <code>Einfügen</code>


==Node.js in der Bash ausführen==
==Node.js in der Bash ausführen==
Zeile 98: Zeile 117:
# <code>3+4..toString()</code> (Alternative des vorherigen Befehls bei der das Leerzeichen entfällt)
# <code>3+4..toString()</code> (Alternative des vorherigen Befehls bei der das Leerzeichen entfällt)


Tipp: Sie können mit den Cursortasten „nach oben“ und „nach unten“ zwischen den schon eingegebenen Konsol-Befehlen hin und her blättern.
Tipp: Auch in der Node.js-Konsole können Sie mit den Cursortasten „nach oben“ und „nach unten“ zwischen den schon eingegebenen Konsol-Befehlen hin und her blättern.


Sehr spannend sind auch die folgenden vier Befehle, wobei die Ergebnisse nur von JavaScript-Engine-Programmierern zu verstehen sind.
Sehr spannend sind auch die folgenden vier Befehle, wobei die Ergebnisse nur von JavaScript-Engine-Programmierern zu verstehen sind.
Zeile 109: Zeile 128:


Übringens reagiert hier jede JavaScript-Engine anders!
Übringens reagiert hier jede JavaScript-Engine anders!


==Ausführen von Dateien==
==Ausführen von Dateien==
Zeile 193: Zeile 214:
In diesem Programm wurde das [http://nodejs.org/api/readline.html Readline-Modul von Node.js] verwendet.
In diesem Programm wurde das [http://nodejs.org/api/readline.html Readline-Modul von Node.js] verwendet.


==Anmerkungen zur Git-Bash unter Windows==
==Fortsetzung des Tutoriums==


Auch in der Git-Bash können Sie mit den Cursortasten „nach oben“ und „nach unten“ zwischen den schon eingebenen Bash-Befeheln hin und her blättern.
Sie sollten nun [[Node.js-Tutorium: Hello World 02: HTTP|Teil 2 des Tutoriums]] bearbeiten.
 
[[Kategorie: Node.js-Tutorium: Hello World]][[Kategorie: Node.js-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]]
In die Git-Bash können Bash-Befehle allerdings nur etwas umständlich per Copy und Paste eingefügt werden:
 
* Bash-Befehl per <code>Strg-c</code> kopieren.
* Klick auf das kleine Icon in der linken oberen Ecke des Bash-Fensters
* Klick auf <code>Bearbeiten</code>
* Klick auf <code>Einfügen</code>
 
Acuh beim Aufruf vom <code>vi</code> muss man diesen umständlichen Weg gehen. Wenn allerdings die Node.js-Konsole läuft,
geht es etwa einfacher:
 
* JavaScript-Befehl per <code>Strg-c</code> kopieren.
* Rechtsklick in die Node.js-Konsole
* Klick auf <code>Einfügen</code>


==Quellen==
==Quellen==
* {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}
* {{Quelle|Kowarschick, W.: Multimedia-Programmierung}}
* [http://howtonode.org/hello-node HOW TO NODE: Hello Node!]
* [http://howtonode.org/hello-node HOW TO NODE: Hello Node!]
==Fortsetzung des Tutoriums==
Sie sollten nun [[Node.js-Tutorium: Hello World 02: HTTP|Teil 2 des Tutoriums]] bearbeiten.
[[Kategorie: Node.js-Tutorium: Hello World]][[Kategorie: Node.js-Beispiel]][[Kategorie:Kapitel:Multimedia-Programmierung:Beispiele]]

Version vom 25. Oktober 2014, 14:00 Uhr

Dieser Artikel erfüllt die GlossarWiki-Qualitätsanforderungen nur teilweise:

Korrektheit: 4
(großteils überprüft)
Umfang: 1
(zu gering)
Quellenangaben: 5
(vollständig vorhanden)
Quellenarten: 5
(ausgezeichnet)
Konformität: 5
(ausgezeichnet)

Node.js-Tutorium Hello World

Übersicht: Teil 1: Konsole | Teil 2: HTTP | Teil 3: TCP

Ziel: Ausgabe von „Hello, world!“ auf der Konsole

Es soll eine einfache Node.js-Anwendung erstellt werden, die Hello, world! bzw. Hello, <BENUTZERNAME>!auf einer Bash-Konsole ausgibt.

Node.js installieren

Für die Realisierung von Node.js-Projekten benötigt man außerdem auf jeden Fall eine Konsole, am Besten eine Unix-Konsole wie die Bash. Unter Linux und Mac gibt es eine derartige Konsole bereits, unter Window kann man die „Git BASH“ verwenden:

Des weiteren benötigt man natürlich Node.js:

Anmerkungen zur Git-Bash unter Windows

In der Git-Bash können Sie mit den Cursortasten „nach oben“ und „nach unten“ zwischen den schon eingebenen Bash-Befeheln hin und her blättern.

In die Git-Bash können Bash-Befehle allerdings nur etwas umständlich per Copy und Paste eingefügt werden:

  • Bash-Befehl per Strg-c aus dem Tutorial kopieren.
  • Klick auf das kleine Icon in der linken oberen Ecke des Bash-Fensters
  • Klick auf Bearbeiten
  • Klick auf Einfügen

Auch beim Aufruf des Linux-Editors vi von der Bash-Konsole aus muss man diesen umständlichen Weg gehen. Wenn allerdings die Node.js-Konsole läuft (siehe nächsten Abschnitt), geht es etwa einfacher:

  • JavaScript-Befehl per Strg-c kopieren.
  • Rechtsklick in die Node.js-Konsole
  • Klick auf Einfügen

Node.js in der Bash ausführen

Öffnen Sie ein Bash-Konsolfenster und starten Sie Node.js, indem Sie den Befehl node eintippen:

$ node

Es öffnet sich die Node.js-Konsole. Tippen Sie in diese Kolsole "Hello, world!" ein:

> "Hello, world!"

Das Programm antwortet mit der Ausgabe:

'Hello, world!'

Tippen Sie nun folgende Befehle ein:

> var benutzer = "Wolfgang"
> "Hallo, " + benutzer + "!"

Das Programm antwortet nach dem ersten Befehl mit der Ausgabe:

undefined

und nach dem zweiten Befehl mit der Ausgabe:

'Hallo, Wolfgang!'

Read–Eval–Print-Loop

Die Node.js-Konsole realisiert eine sogenannte Read–Eval–Print-Loop. Das bedeutet, solange die Node.js-Konsole läuft, führt sie immer wieder folgende drei Befehle aus:

  1. Read: Einlesen, parsen und übersetzen der Benutzereingabe.
  2. Eval: Ausführen (“evaluate”) des übersetzten Codes.
  3. Print: Ausgeben des Ergebnises auf der Konsole.

Falls ein Befehl kein Ergebnis liefert, wird undefined als Ergebnis ausgeliefert. Das ist z.B. bei der Definition und Initialisierung der Variablen benutzer der Fall.

console.log

Mit Hilfe des Befehls console.log() ist es möglich, Informationen schon während der Eval-Phase auf der Konsole auszugeben.. Tippen Sie in diese console.log("Hello, world!") ein:

> console.log("Hello, world!")

Das Programm antwortet mit der Ausgabe:

Hello, world!
undefined

Die erste Ausgabe erfolgt während der Eval-Phase, die zweite Ausgabe erfolgt während der Print-Phase und zeigt das Ergebnis des Aufrufs der Funktion console.log an.

Aufgaben

Was gibt der Befehl console.log("Hello, " + benutzer + "!") auf der Konsole aus in folgenden Fällen aus?

  1. Der Befehl wird direkt im Anschluss an die obigen Befehle in die Node.js-Konsole eingegeben.
  2. Der Befehl wird nach einem Neustart der Node.js-Konsole eingegeben. (Sie können die Konsole mit Crtl-d bzw- Strg-d beenden.)

Was geben folgende Befehle auf der Konsole aus?

  1. 3+4
  2. 3+ gefolgt von der Return-Taste und anschließend 4
  3. console.log(3+4)
  4. console.log(3+4, 3*4)
  5. (3+4).toString()
  6. 3+4 .toString() (Das Leerzeichen ist wichtig!)
  7. 3+4..toString() (Alternative des vorherigen Befehls bei der das Leerzeichen entfällt)

Tipp: Auch in der Node.js-Konsole können Sie mit den Cursortasten „nach oben“ und „nach unten“ zwischen den schon eingegebenen Konsol-Befehlen hin und her blättern.

Sehr spannend sind auch die folgenden vier Befehle, wobei die Ergebnisse nur von JavaScript-Engine-Programmierern zu verstehen sind. Für jeden Normalbürger sind sie nicht nur überraschend, sondern auch noch vollkommen unintuitiv:

  1. [] + []
  2. [] + {}
  3. {} + []
  4. {} + {}

Übringens reagiert hier jede JavaScript-Engine anders!


Ausführen von Dateien

Gehen Sie mit Hilfe des Bash-Befehls cd in das Verzeichnis, indem Sie Ihre Dateien aus dem ersten Node.js-Tutorium ablegen. Zum Beispiel:

cd /C/web/node/tutorium/hello_world_01

Wenn es dieses Verzeichnis noch nicht gibt, müssen Sie es vorher erstellen:

mkdir -p /C/web/node/tutorium/hello_world_01

Legen Sie eine Datei namens hello-world-konsole-01.js an und schreiben Sie in diese Datei mit Hilfe Ihres Lieblings-Texteditors (für Bash-Benutzer ist dies selbstverständlich vi) folgende drei Zeilen:

console.log("Hello, world!");
var benutzer = "Wolfgang";
console.log("Hello, " + benutzer + "!");

Mit dem Bash-Befehl less können Sie den Inhalt auflisten:

less hello-world-konsole-01.js

Und mit Hilfe des Befehls node können Sie den Inhalt der Datei übersetzen und ausführen:

node hello-world-konsole-01.js

Folgende Unterschiede zur Read-Eval-Print-Loop sind zu beobachten:

  • Alle Befehle werden auf einmal übersetzt.
  • Die einzelnen Befehle müssen daher durch Strichpunkte voneinander getrennt werden.
  • Die Ergebnisse einzelnen Befehle werden nicht auf der Konsole ausgegeben. Es werden nur die Ausgaben der console.log-Befehle in der Konsole angezeigt.

Benutzereingaben

Es ist auch möglich, Benutzereingaben über die Konsole zu tätigen.

Erstellen Sie eine Datei hello-world-konsole-02.js und fügen Sie folgenden Code ein:

// see http://stackoverflow.com/questions/8128578/reading-value-from-console-interactively
// see http://nodejs.org/api/readline.html

var l_readline = require('readline');
var l_rln      = l_readline.createInterface(process.stdin, process.stdout);

l_rln.setPrompt('Name: ');
l_rln.prompt();
l_rln.on('line',
          function(p_input)
          { if (p_input === "quit")
              l_rln.close();
            console.log("Hello, " + p_input + "!");
            l_rln.prompt();
          }
        )
     .on('close',
          function()
          { process.exit(0);
          }
        );

Starten Sie nun dieses Programm mit Hilfe des Befehls

node hello-world-konsole-02.js

Sie werden nach einem Namen gefragt. Wenn Sie diesen eingeben, werden die zugehörige Person namentlich begrüßt und Sie werden nach einem weiteren Namen gefragt. Das Programm endet, sobald Sie quit als Namen eingeben.

In diesem Programm wurde das Readline-Modul von Node.js verwendet.

Fortsetzung des Tutoriums

Sie sollten nun Teil 2 des Tutoriums bearbeiten.

Quellen