2017-05-18 4 views
0

Ich habe ein Knoten/Federn-Projekt mit this chat application guide als Basis erstellt. Es funktioniert gut, aber jetzt möchte ich die Ergebnisse filtern, die die API gibt. Wenn der Benutzer beispielsweise eine GET-Anforderung an/Nachrichten sendet, möchte ich, dass die Antwort nur die Nachrichten enthält, die der berechtigte Benutzer erstellt hat, und nicht die Nachrichten anderer Personen. Auth arbeitet korrekt in der API und Nachrichten haben die userId, die die Nachricht erstellt haben, aber ich verstehe einfach nicht, was und wo ich tun soll, um die Nachrichten entsprechend der Benutzer-ID zu filtern. Nach stundenlangem Googlen konnte ich nichts finden, was mit dieser Frage zu tun hatte oder jemand, der die Frage überhaupt gestellt hatte. Was fehlt mir hier?Feathersjs Filter Ergebnisse

Antwort

1

Sie können eine manuelle Filterung durchführen. Sowohl an before als auch an after Haken. How to use hooks.

In Vor-Hooks können Sie eine Funktion erstellen, die Ihr Query-Objekt so aktualisiert, dass es nur Daten erhält/findet, die es besitzt.

hook.params.query = { ... , ownedBy: hook.params.user._id } 

Oder führen nach Haken Filterung in, haben Sie die hook.result, die das einzige, was Sie in der nach Haken manipulieren kann. Dann können Sie Array.prototype.filter() verwenden, um die Ergebnisse zu filtern, die der Benutzer erhält.

+0

Vielen Dank. Tatsächlich habe ich auch festgestellt, dass es einen Authentifizierungs-Haken restrictToOwner gibt, der auch für diesen Zweck verwendet werden kann. – nojs