Ich habe Loopback verwendet, um eine API zu erstellen. Die Dokumentation ist in der Regel wirklich gut, beantwortet aber nicht wirklich meine Frage zu folgendem: Wie kann ich ein eingebautes Modell erweitern (nicht ersetzen)?Loopback - Einfachste Möglichkeit, ein eingebautes Modell zu erweitern
Das vielversprechendste Stück Information kam von this page - es die Art und Weise gibt eine Klasse von einer anderen Klasse zu stützen, über Vererbung. Dies ist nützlich, aber nicht ideal - ich möchte zum Beispiel Beziehungen zu benutzerdefinierten Modellen aus den Lagermodellen erstellen - "Rolle" sollte viele "Erlaubnis" haben.
Die Seite, die ich erwähne, zeigt auch eine Javascript-Datei, die sich unter common/models/<modelName>.js
befindet, wo Sie angeben, dass Sie ein Modell basierend auf den Eigenschaften und Optionen, die Sie ihm geben, "erweitern" können. Der Server scheint nie die Datei zu schlagen ... Zum Beispiel - ich in common/models/role.js
mit folgendem Inhalt eine Datei setzen:
var properties = {
exampleProperty: {type: String, required: true}
};
var user = loopback.Model.extend('Role', properties);
console.log('test');
Zunächst einmal, es scheint nicht, die Datei überhaupt zu schlagen (kein console.log
Ausgang gegeben). Zweitens, offensichtlich wegen des ersten Punktes, erweitert es das Modell nicht mit den Eigenschaften, die ich erstellt habe.
Fehle ich etwas offensichtlich oder ist die Dokumentation einfach falsch?
das gleiche Problem hier. Dokumente scheinen ziemlich unvollständig zu sein, wenn man erklärt, wie man eingebaute Modelle erweitert - sie scheinen zu vermuten, dass man sie erweitern kann, aber wie du, fand ich heraus, dass die Verwendung von zB user.json/.js keine Option ist. hast du die Vererbung wie hier vorgeschlagen? Ich bin besorgt, dass es Zugangsmarken brechen oder allgemein mehr Probleme verursachen wird. –
Hallo, ja, Vererbung ist der Weg zu gehen. Wenn Sie die Basis-Klasse "User" erweitern, erhalten Sie die gleichen Methoden und irgendwie wird das accessToken-Zeug auch für Sie ermittelt. – freshnode