2017-05-02 7 views
0

Ich muss eine kontinuierliche Aufgabe in meinem ArangoDb ausführen, die Datenbank selbst hat die Sicherheit eingeschaltet. Wenn ich eine Aufgabe an den API-Endpunkt zu veröffentlichen, wird die Aufgabe registriert, aber dann auf dem Fehlerprotokoll bekomme ich folgende:Wie erteile ich eine Aufgabe, um eine Anfrage auszuführen?

JavaScript-Ausnahme in der Datei ‚undefined‘ bei 3,75: ArangoError 11:

verboten

Keine Überraschung ... Aber wie kann ich einen Benutzer aus dem @arangodb-Modul tatsächlich anmelden?

Nur für den Fall, hier ist der Code meiner Aufgabe:

function() { 
     const db = require('@arangodb').db; 
     db._useDatabase("foo"); 
     db._query("LET now = DATE_NOW() FOR u IN wait FILTER now - u.time >= 300000 REMOVE {_key: u._key} IN wait"); 
    }  

Antwort

0

Werfen Sie einen Blick auf this other question, dass die einzige andere Datenbank Foxx heißt es kann _system Zugriff ist.

Ich gehe davon aus, dass Ihr Beispiel nicht in 'foo' läuft und Sie versuchen, zu einer anderen Datenbank zu springen, was verboten ist.

Wenn Sie eine einzelne Ansicht von Daten in einer anderen Datenbank haben möchten, können Sie REST-Endpunkte in jeder Datenbank mit Foxx veröffentlichen und dann von einer externen App alle diese REST-Endpunkte aufrufen und Daten aus mehreren Datenbanken abrufen.

+0

Hallo, danke für die Antwort. Ich benutze nicht Foxx, wie ich sagte, und ich spring nicht von einer Datenbank zu einer anderen Datenbank. Da die Aufgabe in der foo-Datenbank veröffentlicht wird, wirkt sich meine Abfrage auf eine Sammlung dieser Datenbank aus. Ich benutze diese Funktion [link] (https://docs.arangodb.com/3.1/Manual/Appendix/JavaScriptModules/Tasks.html) –

+0

Ah, als Sie das @ rangodb-Modul erwähnten, nahm ich an, dass es in Foxx war. Wenn Sie diesen Code von Node.js ausführen, haben Sie sich die [arangojs-Bibliothek] (https://github.com/arangodb/arangojs) angesehen, die vom ArangoDB-Team verwaltet wird? –

+0

Ja David, ich betreibe meine Knoten-App auf arangojs. Ich versuche, die Aufgabenfunktion von arangoDb zu verwenden, der Link ist in meinem Kommentar oben. Diese Funktion bietet einen API-Endpunkt, an dem ich eine JS-Funktion veröffentlichen kann, die alle x Sekunden über Arangos internem V8 ausgeführt wird. Tatsache ist, dass ich keine Möglichkeit finde, diese Aufgabe für die Datenbank zu authentifizieren. Vielen Dank für Ihr Interesse. –

Verwandte Themen