2016-08-02 13 views
-1

Ich versuche, eine Anmeldekomponente zu verspotten, die einen HTTP-Post mit Anmeldeinformationen an einen Authentifizierungsendpunkt ausführt, der ein JSON-Objekt mit einem Token und einigen anderen Informationen zurückgibt.InMemoryBackendService-Fehler collection.reduce ist keine Funktion

eine „500 Interner Serverfehler“ Antwort zu erhalten, bei näherer Betrachtung sehe ich mehr Informationen in dem Körper der Antwort ...

error:"collection.reduce is not a function" 

hier ist meine Samendatendatei

export class AppData { 
    createDb() { 
    let auth = { 
     access_token: '2YotnFZFEjr1zCsicMWpAA', 
     token_type: 'bearer', 
     expires_in: 3500 
    }; 
    return {auth}; 
    } 
} 

auth.service.ts

public authenticateUser(user:string, pass:string):Promise<AuthResponseModel> { 


    // TODO: Hit auth endpoint 
    let authUrl = 'app/auth'; 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    let options = new RequestOptions({ headers: headers }); 
    let body = JSON.stringify({ username: user, password: pass}); 

    return this.http.post(authUrl, body, options) 
     .toPromise() 
     .then((res: Response) => { 
      let body = res.json(); 
      return body.data || { }; 
     },(reason:any) => { 
      console.log('authenticateUser() error %o ', reason); 
      return Promise.reject(reason); 

     }) 
     .catch(this.handleError); 


} 

Antwort

0

InMemoryBackendService funktioniert nur mit Sammlungen. Es ist also ziemlich nutzlos, andere Dienste als einfache CRUD-Endpunkte zu verspotten.