Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
computer:basteln:nodejs [2014/09/23 14:40] gaubes [Socket.io] |
computer:basteln:nodejs [2018/03/16 21:11] (aktuell) |
||
---|---|---|---|
Zeile 35: | Zeile 35: | ||
<code>/usr/local/bin/node | <code>/usr/local/bin/node | ||
</code> | </code> | ||
- | Für npm analog dazu: | + | Für npm (node package manager) analog dazu: |
<code>/usr/local/bin/npm | <code>/usr/local/bin/npm | ||
</code> | </code> | ||
+ | Der npm dient dazu, Module von node.js zu installieren. | ||
Eine Hello-World-Seite lässt sich folgendermaßen auf den Localhost bringen (bis zum Neustart): | Eine Hello-World-Seite lässt sich folgendermaßen auf den Localhost bringen (bis zum Neustart): | ||
Zeile 180: | Zeile 181: | ||
Möchte man also Kommunizieren via Chat (auch Gruppenchat), Online-Spiele (Position der Spieler) oder andere Sachen, die zeitgleich aktualisierte Informationen an mehrere Endnutzer benötigen, programmieren, so bietet sich Socket.io an. | Möchte man also Kommunizieren via Chat (auch Gruppenchat), Online-Spiele (Position der Spieler) oder andere Sachen, die zeitgleich aktualisierte Informationen an mehrere Endnutzer benötigen, programmieren, so bietet sich Socket.io an. | ||
+ | |||
+ | ===== Eigene Module ===== | ||
+ | Natürlich kann man sich Module, die man gerne benutzen möchte auch selbst schreiben und einbinden. | ||
+ | Dazu werden in einer .js-Datei, die Dinge gespeichert, die übergeben werden sollen, also bpsw. Funktionen und/oder Variablen. Wichtig dabei ist es allerdings, dass man, was man übergeben will, auch exportiert. Dabei gibt es folgende Möglichkeiten: | ||
+ | <code javascript> | ||
+ | var hobby = 'sport'; | ||
+ | var multiplyBy2= function(n){ | ||
+ | return n*2; | ||
+ | }; | ||
+ | |||
+ | var multiplyBy10 = function (n){ | ||
+ | return n*10; | ||
+ | }; | ||
+ | |||
+ | exports.hobby = hobby; | ||
+ | exports.malZehn = multiplyBy10; | ||
+ | </code> | ||
+ | |||
+ | Würde man dieses nun einbinden, so wird die Funktion, die hier als ''multiplyBy10'' benannt wurde als ''malZehn'' importiert und die Funktion ''multiplyBy2'' wird nicht importiert. | ||
+ | Eine Datei namens multiplier.js lässt sich (abhängig vom Dateipfad) folgendermaßen einbinden_ | ||
+ | <code javascript> | ||
+ | var m = require('./multiplier.js'); | ||
+ | </code> | ||
+ | Mit dem erzeugten ''m'' lassen sich nun der Exportierte Inhalt der multiplier.js-Datei benutzen. | ||
+ | Dies lässt sich in der Node-Konsole ganz einfach testen: | ||
+ | <code javascript> | ||
+ | m // Enter drücken | ||
+ | |||
+ | <hobby : 'sport', //Ausgabe | ||
+ | malZehn: [Function]> | ||
+ | //-------------------- | ||
+ | |||
+ | m.multiplyBy2 // Enter drücken | ||
+ | undefined //Ausgabe | ||
+ | //-------------------- | ||
+ | |||
+ | m.hobby // Enter drücken | ||
+ | 'sport' //Ausgabe | ||
+ | |||
+ | </code> | ||
+ | Hierbei sieht man, dass wirklich nur die Exporte auf m anwendbar sind. Weiter fällt auf, dass sich damit auch Assoziative Felder erstellen lassen. | ||
+ | Führt man mehrmals hintereinander den require-Befehl auf die gleiche Variable, so fällt auf bspw. mit nem ''console.log()''), dass diese Variable nur einmal und nicht jedesmal überschrieben wird. | ||
+ | Eine weitere Möglichkeit, die das Export von oben überschreibt ist Folgende: | ||
+ | <code javascript> | ||
+ | module.exports = { | ||
+ | hobby : hobby, | ||
+ | malZehn : multiplyBy10, | ||
+ | test : function(){ | ||
+ | console.log('test'); | ||
+ | } | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | Wäre vorher im Code etwas anderes Exporttiert werden, wie etwa die ''multiplyBy2''-Funktion, so würde ''module.exports'' dieses überschreiben, so dass es schließlich nicht mehr, da nicht enthalten, exportiert wird. | ||
+ | Dieses lässt sich ebenfalls wie oben mittels Node-Kosole analog testen. |