2016-06-02 6 views
1

Ich verwende den Cloudant-Dienst über das Node.JS-Modul mit den über Bluemix VCAP_SERVICES (oder eine lokale Kopie) bereitgestellten Anmeldeinformationen. Die Instanz wird erstellt mitUnerwarteter `server_admin required` Fehler bei Cloudant NodeJS

var Cloudant = require('cloudant'); 
// var cloudantCreds obtained from process.env.VCAP_SERVICES 
var username = cloudantCreds.username; 
var password = cloudantCreds.password; 
var cloudant = Cloudant({ 
    account:username, 
    password:password 
}); 

ich eine Funktion geschrieben hatte, die eine Datenbank automatisch erstellen/löschen, wenn ein Benutzer angefordert, und es erfolgreich gearbeitet. Diese intern verwendete

cloudant.db.create(databaseName, function(err, res){ 
    // Handle 
}); 

jedoch vor kurzem bekomme ich einen Fehler:

'server_admin access is required for this request' 

ich nur einen Satz von Anmeldeinformationen und ein Konto verwenden. Die Verwendung dieser Anmeldeinformationen in der Befehlszeile mit curl ermöglicht es mir, Datenbanken erfolgreich zu erstellen/löschen, aber es scheint nicht möglich, dies über das Modul node.js zu tun.

Soweit ich mich erinnern kann, habe ich keinen Code in Bezug auf diese Funktion meines Node.js-Servers geändert.

Was verursacht nun den Zugriff auf server_admin? Aufgrund der Art der Fehlermeldung bin ich vermutlich authentifiziert, aber nicht autorisiert?

+0

Ich habe gerade Ihren Code-Snippet mit meinem Admin-Konto/Passwort ausgeführt und ich war in der Lage, eine neue Datenbank aus der Node.js Anwendung zu erstellen. Wenn ich die Zugangsdaten für ein nicht-Administrator apikey/Passwort vertauscht habe, bekomme ich 'server_admin Zugriff ist für diese Anfrage erforderlich'. Sie können die Anfrage debuggen, die tatsächlich durch tun gemacht werden: 'DEBUG = nano Knoten app.js' das heißt die Einstellung der' DEBUG' Umgebungsvariable 'nano'. –

+0

Danke für den Kommentar über DEBUG, es hilft. Es scheint, dass das Problem nicht mit der Funktionalität ist, die ich oben beschrieben habe - dass es weiterhin wie erwartet in der Bereitstellung funktioniert. Ich erhalte den Fehler beim Ausführen von Mocha-Tests für das Express-Objekt, das die obige Funktion auslöst, also liegt vermutlich irgendwo im Mocha-Setup ein Fehler vor. – Jake

Antwort

1

Es stellte sich heraus, dass es ein Fehler in meinem Namen war, obwohl Cloudant nicht besonders informativ war.

Ich habe versucht, Datenbanken mit unzulässigen Namen zu erstellen, z. B. mit einem Unterstrich beginnen oder einen Großbuchstaben enthalten. Ändern Sie den Datenbanknamen, und alles funktioniert ordnungsgemäß.

0

, wenn Ihre Datenbank mit Unterstrich vorangestellt ist, wird es Fehler werfen ...

+0

Können Sie Ihre Antwort von der vorhandenen Antwort unterscheiden, die genau die gleichen Informationen liefert? – Avery