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/10/02 09:27] gaubes [Verwendung der Node- bzw. npm- Konsole] |
computer:basteln:nodejs [2018/03/16 21:11] (aktuell) |
||
|---|---|---|---|
| Zeile 181: | 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. | ||