Database Reference
In-Depth Information
ges-Feed und gibt Änderungs-Events aus, sobald CouchDB geänderte Doku-
mente meldet. Wir beginnen mit dem groben Entwurf unseres Treibers und
reden über seine wichtigsten Punkte. Danach fügen wir die Feed-spezifischen
Details hinzu.
Hier also der Entwurf unseres Watcher-Programms und eine kurzen Erklä-
rung, was er macht:
couchdb/watch_changes_skeleton.js
var
http = require(
'http'
),
events = require(
'events'
);
/
**
*
Erzeuge CouchDB-Watcher basierend auf Verbindungskriterien;
*
folgt node.js EventEmitter-Muster und emittiert 'change'-Events.
*
/
exports.createWatcher =
function
(options) {
{
|
var
watcher =
new
events.EventEmitter();
watcher.host = options.host ||
'localhost'
;
watcher.port = options.port || 5984;
watcher.last
_
seq = options.last
_
seq || 0;
watcher.db = options.db ||
'
_
users'
;
}
watcher.start =
function
() {
// ... feed-spezifische Implementation ...
};
return
watcher;
};
// CouchDB-Überwachung starten, wenn Hauptskript
~
if
(!module.parent) {
exports.createWatcher({
db: process.argv[2],
last
_
seq: process.argv[3]
})
.on(
'change'
, console.log)
.on(
'error'
, console.error)
.start();
}
{
exports
ist ein Standard-Objekt, das von der CommonJS-Modul-API be-
reitgestellt wird, die Node.js implementiert. Das Hinzufügen der
createWatcher()
-Methode zu
exports
macht sie für andere Node.js-Skrip-
ten verfügbar, die sie als Bibliothek nutzen wollen. Mit dem
options
-Ar-
gument kann der Aufrufer festlegen, welche Datenbank überwacht wer-
den soll, und er kann weitere Verbindungseinstellungen überschreiben.