2012-04-11 18 views
1

Ich versuche, couchdb mit node-couchdb-api auf Nodejs-Ebene wie im folgenden Link http://dominicbarnes.us/node-couchdb-api/.My Couchdib Version ist 1.1.1 und Nodejs Version 0.6.10 zu verbinden.Temporäre Ansicht in couchdb mit node-couchdb-api erstellen

Zum Erstellen der temporären Ansicht wie in api http://dominicbarnes.us/node-couchdb-api/api/database/tempView.html erwähnt habe ich den folgenden Code geschrieben.

var couchdb = require("couchdb-api"); 
var server = couchdb.srv(localhost, 5984, false, false); 
var db = server.db("test"); 
var map = function (doc) { 
emit(null, 1); 
}; 
var reduce = "_sum"; 
var query = { include_docs: true }; 
db.tempView(map, reduce, query, function (err, response) { 
console.log(response); 
}); 

Aber ich bin mit dem folgenden Problem konfrontiert.

C:\Program Files\nodejs\node_modules\couchdb-api>node server.js 
node.js:201 
throw e; // process.nextTick error, or 'error' event on first tick 
     ^
TypeError: Cannot read property '0' of null 
at C:\Program Files\nodejs\node_modules\couchdb-api\lib\util.js:24:39 
at Array.map (native) 
at Object.formatFunction (C:\Program Files\nodejs\node_modules\couchdb-api\lib\util.js:22:25) 
at Object.tempView (C:\Program Files\nodejs\node_modules\couchdb-api\lib\database.js:285:28) 
at Object.<anonymous> (C:\Program Files\nodejs\node_modules\couchdb-api\server.js:27:4) 
at Module._compile (module.js:441:26) 
at Object..js (module.js:459:10) 
at Module.load (module.js:348:31) 
at Function._load (module.js:308:12) 
at Array.0 (module.js:479:10) 

Bitte schlagen Sie mir vor, das Problem zu lösen. Vielen Dank im Voraus.

+0

Hey, ich bin der Schöpfer dieses Moduls und ich habe Ihr Problem erfolgreich reproduziert. Ich habe den Fehler gefunden und eine neue Version wird so bald wie möglich gepostet. (innerhalb der nächsten 20-30 Minuten) –

+0

In der Zwischenzeit fügen Sie einige Leerzeichen vor 'emit (null, 1);' hinzu und das wird Ihr Problem klären. (Ich habe einen kleinen "Pretty-Printer" für Funktionskörper hinzugefügt, der die führenden Leerzeichen löscht, damit er in Futon nicht wackelig aussieht, da kam der Bug her) –

Antwort

3

Entschuldigung für das Problem, das Sie erlebt haben. Ich bin der Schöpfer dieses Moduls, und ich habe gerade die Version 1.1.2 auf NPM gebracht, die Ihr Problem anspricht. (und enthält einen Komponententest, um sicherzustellen, dass es nicht wieder passiert)

Aktualisieren Sie einfach auf die neueste Version über npm update couchdb-api, und Sie sollten eingestellt sein zu gehen. Lassen Sie es mich wissen, wenn Sie weitere Probleme haben.

+0

In aufrichtiger Wertschätzung für Ihre wertvolle Hilfe, bitte akzeptieren Sie meinen Respekt. Dein neuestes Paket funktioniert, aber wenn wir couchdb-api mit npm aktualisieren, stehe ich immer noch vor dem Problem. Also, ich habe das neueste couchdb-api-Paket heruntergeladen und in den node_modules ersetzt. Entschuldigung dafür, dass ich dich wieder belästige, da ich jetzt die temporäre Ansicht von der db bekommen kann, ohne dass admin in couchdb erstellt wurde, aber wenn admin auf couchdb ist, kann level nicht die tempview von db bekommen. {Fehler: 'nicht autorisiert', Grund: 'Sie sind kein DB- oder Serveradministrator.' } Bitte schlagen Sie mir vor, wie Sie mit Administratorrechten eine temporäre Ansicht erhalten. – veerender

+0

Hmm, kann nicht glauben, dass ich nie Dokumentation über Auth hinzugefügt habe. Um Ihren Benutzernamen/Ihr Passwort hinzuzufügen, müssen Sie 'server.auth =" user: pass ";' ODER 'server.auth = [" user "," pass "];' –

Verwandte Themen