Ich benutze die @ Mean-Experte/Loopback-SDK-Builder, um meine API auf eckigen 4.3.6 zu generieren und ich bekomme einen Fehler, wenn ich diesen AnrufTypeError: instances.map ist keine Funktion eckige Loopback
verwendethis._userApi.findUsersByRoles([{'name':'cliente'}]).subscribe((users: User[]) => {
this.users = users;
}, (err) => {console.log(err) })
Wenn ich diese Methode im Loopback-Explorer versuche, bekomme ich eine Reihe von Benutzern.
Dies ist die Funktion vom sdk Loopback erzeugt 'findUsersByRoles'
public findUsersByRoles(roles: any, customHeaders?: Function): Observable<User[]> {
let _method: string = "GET";
let _url: string = LoopBackConfig.getPath() + "/" + LoopBackConfig.getApiVersion() +
"https://stackoverflow.com/users/findUserByRoles";
let _routeParams: any = {};
let _postBody: any = {};
let _urlParams: any = {};
if (typeof roles !== 'undefined' && roles !== null) _urlParams.roles = roles;
let result = this.request(_method, _url, _routeParams, _urlParams, _postBody, null, customHeaders);
return result.map((instances: Array<User>) =>
instances.map((instance: User) => new User(instance))
);
}
Und das ist die gedruckte Fehler in der Konsole:
Ich vermute, dass Dies könnte ein Fehler im SDK-Builder sein, da das eckige Projekt neu ist und nicht viele Änderungen hatte n der Gesamtstruktur.
Lösung
Wie ich in den Antworten gesagt worden ist, ist das Problem, dass Fälle nicht ein Array ist, dieses Problem zu beheben i die Eigenschaft root gesetzt hatte: im Loopback-Modell wahr auf der remoteMethod Definition
returns: {
arg: 'users',
type: 'array',
root : true
}
"Ich bekomme eine Reihe von Benutzern" sind Sie sicher? Was bedeutet 'console.log (Instanzen)' in 'result.map' zu drucken? – echonax
Ich verstehe nicht Ihren letzten Kommentar, aber ich denke nicht typeof 'Instanzen' ist 'Array' –
echonax
ich aktualisierte den Wert der Intents – Edlop