Metainformationen zur Seite
  •  

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

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.