Open Source im professionellen Einsatz
Linux-Magazin 03/2014
447

Bitte anmelden

Die Methode »methods()« initialisiert in Listing 7 (Zeile 21) auf dem Webserver die Funktion »upsert« . Listing 11 ruft sie in Zeile 4 wie eine gespeicherte Prozedur oder eine Remote Procedure auf. Die Funktion übernimmt Kennung, Titel und Text des Beitrags. Falls der Benutzer nicht angemeldet ist, brechen die Zeilen 9 bis 10 in Listing 10 den Funktionsaufruf mit einem Fehler ab.

Listing 11

client/client.js

01 Template.editor.events({
02   'click #save': function() {
03     error();
04     Meteor.call('upsert', val('id'), val('title'), val('text'), function(e) {
05       error(e.message);
06       nav();
07     });
08     nav(1);
09   },
10   'click #remove': function() {
11     Articles.remove(val('id'));
12     nav(1);
13   }
14 });

Zeile 13 konstruiert gleich anschließend das zu speichernde Objekt. Das Feld »owner« nimmt die Kennung aus der Benutzerverwaltung auf. Da nach der Deinstallation des Pakets »insecure« der direkte Aufruf der Methode »upsert()« nicht mehr zulässig ist, werden bestehende Artikel in Zeile 15 mittels »update()« aktualisiert oder in Zeile 18 mittels »insert()« neu eingefügt.

Der Aufruf von Update knüpft das Aktualisieren in Zeile 15 an zwei Bedingungen: »_id: id« schränkt die Aktualisierung auf den vorliegenden Beitrag ein und »owner: this.userId« auf dessen Ersteller. Im zweiten Aufrufparameter erzwingt der Bezeichner »$set« , das Objekt vollständig zu ersetzen. Erfolgt keine Aktualisierung, bewirkt der Rückgabewert 0 in Zeile 15, dass Meteor einen Fehler meldet.

Der Javascript-Code aus Listing 11 bringt die Funktion »upsert()« aus Listing 10 ins Spiel. Der Aufruf der Methode Events ersetzt den Aufruf aus Listing 7, Zeilen 18 bis 28. Die Rückruffunktion zum Ereignis Speichern (Zeilen 2 bis 9) ruft in Zeile 4 mit »call()« die Funktion »upsert()« auf dem Webserver auf. Call übernimmt im ersten Parameter den Funktionsnamen, die weiteren Parameter werden bis auf den letzten dem Server-seitigen Funktionsaufruf übergeben.

Der letzte Parameter enthält eine Rückruffunktion, die Meteor im Fehlerfall ausführt. Sie gibt in Zeile 5 eine Fehlermeldung im Editor aus. Anschließend schaltet der Aufruf von »nav()« in Zeile 6 in die Editoransicht. Mit dem Wert 1 steuert »nav()« in den Zeilen 8 und 12 die Listenansicht an.

Deployment

Damit ist die Anwendung auf dem lokalen Rechner fertiggestellt. Beim Übertragen auf den Webserver hilft Meteor ebenfalls. Ruft der Entwickler »meteor bundle starpublisher.tgz« im Wurzelverzeichnis des Projekts auf, erzeugt das Framework eine vollständige Node.js-Anwendung und speichert sie in der Archivdatei »starpublisher.tgz« .

Nach dem Entpacken auf dem Webserver benötigt die Anwendung lediglich eine Node.js-Instanz und einen Mongo-DB-Server. Eine Anleitung zur Inbetriebnahme der Anwendung enthält die mit ins Archiv gepackte Readme-Datei. Alternativ veröffentlicht der Befehl »meteor deploy starpublisher.meteor.com« die Beispielanwendung zu Demonstrationszwecken direkt unter der Webadresse http://starpublisher.meteor.com.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 5 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.