Pourquoi datasource.server imprime-t-il undefined dans http get subscribe même si le data.length renvoyé> 0

Cuteqn124

J'ai une API Web qui renvoie la liste des sources de données pour un ID utilisateur donné. L'application angulaire utilise cette API Web pour obtenir la liste des sources de données. Dans la méthode d'abonnement, console.log (data.length) s'imprime comme 2 (comme prévu) mais console.log (data [0] .server); imprime comme non défini. Je ne pouvais pas comprendre pourquoi? Toute aide serait très appréciée. sortie postman de l'API Web

[
    {
        "USERID": "user1",
        "SERVER": "localhost",
        "AUTHENTICATION": "WINDOWS",
        "DATABASE": "db1"
    },
    {
        "USERID": "user1",
        "SERVER": "localhost",
        "AUTHENTICATION": "SQL",
        "DATABASE": "db2"
    }
]

La classe de source de données sur angulaire est définie comme ci-dessous:

export class Datasource {
userid: string;
server: string;
authentication: string;
database: string;
}

Un service

getDatasource():Observable<Datasource[]>{
    let userid = this._authService.name;
    let params = new HttpParams()
    params = params.set('USERID', userid);
     return this._httpClient.get<Datasource[]>(`https://localhost:8080/api/DataSources/ByUserId`, {params: params})
      .pipe(
        catchError(this.handleError)
      );
}

Composant:

import { Component, OnInit } from '@angular/core';
import { Datasource } from 'src/app/model/datasource';
import { DbService } from 'src/app/services/db.service';


@Component({
  selector: 'app-datasources',
  templateUrl: './datasources.component.html',
  styleUrls: ['./datasources.component.css']
})

export class DatasourcesComponent implements OnInit {
  constructor(private _dbService: DbService) {
   }

  ngOnInit(): void {
    
    this._dbService.getDatasource()
      .subscribe(data => {
        console.log('data length: ' + data.length); //prints as 2 as expected(I have 2 records in db, so thats correct)
        //console.log(typeof(data[0])); //prints as object
        //the following output in debug window is 'undefined'?
        console.log('server[0]: ' + data[0].server);
        console.log('server[1]: ' + data[1].server);
      });
  }
}

Image de sortie console.log

Autrement

L'une des deux choses pourrait se produire:

  1. Le getDatasource-Observable pourrait être de retour une valeur qui ne respecte pas l' Datasourceobjet que vous fournissez (un tuyau pourrait le modifier).
  2. Le backend avec lequel getDatasource-Observable interagit (pour acquérir des données) peut renvoyer des données auxquelles vous ne vous attendez pas.

Voici quelques suggestions:

  1. Comme @MichaelD le suggère, console.log (données), ou mieux encore, utilisez votre navigateur pour définir un point d'arrêt au début de la fonction d'abonnement et inspectez ce qui "revient".
  2. Ouvrez l'outil d'inspection du réseau de votre navigateur et vérifiez que vous obtenez ce que vous attendez (du serveur). Si vous utilisez Chrome, dans le menu, cliquez sur: View > Developer > Developer Toolssélectionnez l' Networkonglet -table, et sélectionnez la réponse qui est "revenant du serveur".

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Microsoft.WebApplication.targets

  2. 2

    Exporter la table de l'arborescence vers CSV avec mise en forme

  3. 3

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  4. 4

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  5. 5

    Passer la taille d'un tableau 2D à une fonction ?

  6. 6

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  7. 7

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  8. 8

    Laravel SQLSTATE [HY000] [1049] Base de données inconnue 'previous_db_name'

  9. 9

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  10. 10

    php ajouter et fusionner des données de deux tables

  11. 11

    Créer un système Buzzer à l'aide de python

  12. 12

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  13. 13

    Comment changer la couleur de la police dans R?

  14. 14

    Déplacement des moindres carrés d'ajustement pour les déplacements de points ayant des problèmes

  15. 15

    impossible d'obtenir l'image d'arrière-plan en plein écran dans reactjs

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    comment afficher un bouton au-dessus d'un autre élément ?

  18. 18

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  19. 19

    Comment ajouter une entrée à une table de base de données pour une combinaison de deux tables

  20. 20

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  21. 21

    Comment analyser un fichier avec un tableau d'objets JSON en utilisant Node.js?

chaudétiquette

Archive