Database Reference
In-Depth Information
}
var output = JSON.parse(buffer);
if (output.results) {
watcher.last _ seq = output.last _ seq;
output.results.forEach( function (change){
watcher.emit( 'change' , change);
});
watcher.start();
} else {
watcher.emit( 'error' , output);
}
})
})
.on( 'error' , function (err) {
watcher.emit( 'error' , err);
});
{ Als Vorbereitung auf den Request richtet das Skript zuerst ein http _
options -Konfigurationsobjekt ein. Der path verweist auf die gleiche
_ changes -URL, die wir bereits genutzt haben. feed wird auf longpoll ge-
setzt und include _ docs=true .
| Danach ruft das Skript http.get() auf, eine Methode der Node.js-Biblio-
thek, die einen GET -Request entsprechend unserer Einstellungen durch-
führt. Der zweite Parameter an http.get ist ein Callback, der die
HTTPResponse empfängt. Das Response-Objekte sendet data -Events, wäh-
rend der Inhalt verarbeitet wird, die wir in den buffer einfügen.
} Wenn das Response-Objekt ein end -Event sendet, verarbeiten wir den Puf-
fer (der JSON enthalten sollte). Dem entnehmen wir den neuen last _ seq -
Wert, senden ein change -Event und rufen watcher.start() erneut auf,
um auf die nächste Änderung zu warten.
Um das Skript im Kommandozeilen-Modus auszuführen, starten Sie es wie
folgt (die Ausgabe haben wir gekürzt):
$ node watch _ changes _ longpolling.js music
{ seq: 1,
id: '370255',
changes: [ { rev: '1-a7b7cc38d4130f0a5f3eae5d2c963d85' } ],
doc:
{ _ id: '370255',
_ rev: '1-a7b7cc38d4130f0a5f3eae5d2c963d85',
albums: [ [Object] ],
id: '370255',
name: '""ATTIC""',
url: 'http://www.jamendo.com/artist/ATTIC _ (3)',
mbgid: '',
random: 0.4121620435325435 } }
{ seq: 2,
id: '370254',
changes: [ { rev: '1-2c7e0deec3ffca959ba0169b0e8bfcef' } ],
Search WWH ::




Custom Search