Ok hier ist ein Ausschnitt aus meinem Code, sorry für die Deutsch Kommentare :)
/**
* In die Log-Datei der CouchDB einen neuen
* Eintrag hinzufügen.
*
* @param msg
*
* @author Robert Gregat
*/
var log = function(msg) {
console.log(JSON.stringify(["log", msg]));
};
/**
* Dies ist eine Funktion die aus dem nano Node Module entnommen
wurde.
*
* @author https://github.com/dscape/nano
*/
function _serializeAsUrl(db) {
if (typeof db === 'object' && db.config && db.config.url && db.config.db) {
return urlResolveFix(db.config.url, encodeURIComponent(db.config.db));
} else {
return db;
}
}
// CouchDB stellt eine API bereit die über stdin Befehle entgegen
nimmt.
var stdin = process.openStdin();
// Das Encoding auf utf8 einstellen.
stdin.setEncoding('utf8');
// Auswerten von empfangenen Daten der CouchDB. Wenn eine neue
Datenbank angelegt wurde, enthält das
// JSON Objekt den value created. Tritt dieser Fall ein, wird
automatisch aus der design und custom db
// alle Dokumente in die neue Datenbank repliziert.
stdin.on('data', function(d) {
// Parsen des Ergebnis
if (d !== null) {
parsedData.push(JSON.parse(d));
}
});
/**
* Die Applikation muss in einer Endlosschleife laufen.
*
* @author Robert Gregat
*/
var checker = function() {
for (var index in parsedData) {
if (parsed.type === "created" && parsed.db !== "design" && parsed.db !== "custom") {
// do stuff
}
}
parsedData = [];
setTimeout(checker, 1000);
}
// Endlosschleife starten.
checker();
Die Funktion log hilft mir einige Protokollierung in die couchdb.log Datei zu tun.
Die Funktion _serializeAsUrl ist eine Funktion des Knotenmoduls nano, um Formatierungen vorzunehmen.
Mit process.openStdin() beginne ich von der couchdb nach abgestrahlten Ereignissen zu hören.
Mit Stdin.on() kann ich die emittierten Ereignisse erfassen.
Der Funktionsüberprüfer nimmt die gesammelten Ereignisse und macht, was ich will, basierend auf den gelieferten Informationen (Diese Funktion muss in einer Endlosschleife sein).
Im couchdb Config müssen Sie die folgende hinzu:
[update_notification]
[name] = nodejs [path/to/your/node_application]
Weitere Informationen Schauen Sie auf dieser Seite nehmen: http://docs.couchdb.org/en/1.6.1/config/externals.html
Jede Möglichkeit, Ihren Code zu teilen, um neue db zu hören Änderungen? – CIF
Entschuldigung für meine späte Antwort, ich hatte viel zu tun. Siehe meine neue Antwort für einige Hinweise, um eine kleine Knoten-Anwendung zu schreiben, die auf neu erstellte Datenbanken in CouchDB wartet. – Sceada