Je veux appuyer sur le nouvel utilisateur au tableau des utilisateurs, mais cela me donne une erreur L'erreur est "Erreur TypeError: Impossible de lire la propriété 'Nom d'utilisateur' de NULL"
Je pense qu'il ne peut pas abonner aux nouvelles données ajoutées. Mais lorsque je rafraîchis mon navigateur, les données que j'ai entrées ont été enregistrées dans la base de données et apparaîtront dans la table. P>
Aidez-moi. Je suis nouveau à angular p>
Ceci est l'utilisateur de service.Service.ts p> ceci utilise les utilisateurs de composant.component.ts p> < Pré> xxx pré> Ceci est l'affichage users.component.html p>
3 Réponses :
composant users.component.ts
Vous devez initialiser les utilisateurs de variable: p>
pour p> Lorsque vous utilisez: [] Vous n'indiquez que le type de données, mais ne pas l'initialisation p> p>
@Jophil a mis une console.log de données à l'intérieur de cet abonnement.Userservice.AndUserer et dites-moi le résultat, s'il vous plaît
ça retourne null
adduser (nom d'utilisateur: chaîne, mot de passe: chaîne, type: chaîne): Observable
@Jophil Vérifiez votre réponse du serveur, vous appuyez sur NULL to Utilisateurs et lorsque vous essayez de lire le nom d'utilisateur de la propriété NULL, vous obtenez l'erreur.
usercontroller.insert_user = ((req, res, résultant suivant) => {let Userername = req.body.Asername; laissez mot de passe = req.body.cassword; laisser taper = req.body.type; bcrypt.hash (mot de passe, 10, (err, hachage) => {usermodel.insertuser ([nom d'utilisateur, hachage, type], (utilisateurs) => {res.send (utilisateurs);});});});});
Pouvez-vous s'il vous plaît vérifier, im aussi nouveau au noeud
usermodel.insertuser = ((nom d'utilisateur, mot de passe, type, résultat) => {db.Query ('insert dans les Tblusers set nom d'utilisateur =?, mot de passe =?, type =?', nom d'utilisateur, mot de passe, type, (err, res) => {résultat ("ajouté avec succès");});});
@JOPHIL utilisant des outils de développement de réseau de votre navigateur, vous obtenez l'utilisateur?
J'utilise Postman..Les données ont été ajoutées mais je n'ai pas de données JSON de réponse. Je pense que je l'obtiens. j'essaierai
@JOPHIL L'erreur est que, je ne peux pas vous aider beaucoup avec le nœud, apparemment votre code est correct
Merci Daniel. Je comprends maintenant ... l'erreur est dans mon serveur, je n'ai pas défini de données de réponse après la demande postale
Je suggérerais d'exposer un observable pour les utilisateurs [] dans votre service et de la définir dans vos utilisateurs.component.ts. Ensuite, vous pouvez y souscrire dans votre composant.html avec le tuyau ASYNC.
Exemple court: p> Vous extraire des données de votre API et appelez .nsext () avec les données sur les utilisateurs $. P> dans votre Utilisateurs.component.ts: p> puis en utilisant le tuyau ASYNC pour vous abonner à l'observable: p> J'espère que cela vous pousse dans la bonne direction. P> P>
Mon code fonctionne avant mais maintenant je ne sais pas ce qui se passe. Pouvez-vous vérifier mon code où est-il mal tourné? Il ne peut pas souscrire, mais les données que j'ai entrées ont été enregistrées dans la base de données. Lorsque je rafraîchis mon navigateur, les nouvelles données ont été ajoutées dans le tableau. L'erreur est dans ceci.Users.push (données). Lorsque je connecte les données, il renvoie null. pourquoi il ne peut pas abonner
Je pense que Daniel dans la réponse ci-dessus a raison et le problème est dans votre code serveur car vous retournez NULL. Vous devriez déboguer votre code nœud et voir ce qui ne va pas exactement.
Commencez par vérifier via Postman ou une autre plate-forme si votre point final fonctionne et renvoie l'objet utilisateur approprié.
sur votre service que vous avez p> où votre si vous entrez le code de d'autre part, si vous modifiez vos options sur P> < Pré> xxx pré> et abonnez-vous à cet appel HTTP, votre httpoptions code> est p> http.post code> Vous remarquerez que les options param peuvent accepter une propriété appelé observer code> et vous aurez des cas où il est corps code> et des cas où il est réponse code>. p> Observez: la réponse code> vous donnera quelque chose comme
où le corps serait votre objet utilisateur, mais il serait venu avec le code de statut, les en-têtes, etc.
Donc, si vous vous abonnez à cet appel http, vous devez accéder à p> DATA CODE> (INDIEME SUBSTONNE) serait le corps code>, donc, directement votre objet utilisateur. < / p> p>
Déboguer les données de retour. Quelque chose me dit que cela ne renvoie pas des données du tout. La création de nouvelles entités via un service de repos ne peut renvoyer qu'un en-tête pointant vers l'emplacement des nouvelles données.
Pouvez-vous vous connecter ce qui est retourné du serveur quand y ajoutez l'utilisateur?
Bonjour, si le rafraîchissement fonctionne, il semble que les utilisateurs deviennent d'accord, mais si après un poste vous obtenez l'erreur, il semble qu'un élément de votre tableau soit indéfini. Vous pouvez essayer d'ajouter à vos options HTTP
Observer le corps code>, car je pense que la valeur par défaut estobserver la réponse code>, qui contiendrait le code d'état, beaucoup d'autres choses et ne seraient pas déséréalisé à un objet utilisateur.changer user.Asername à l'utilisateur? .AserName et assurez-vous que les données de retour de l'API
@ Joãoghignatti L'erreur est après la poste. Comment observer le corps?
@onik il retourne null
que c'est le problème que vous ajoutez une valeur nulle dans le tableau des utilisateurs, et lorsque vous la boucle, il est null non plus, renvoyez l'utilisateur nouvellement ajouté du serveur ou après que la réponse appelle simplement des gettuers ().
@Hiennguyen L'insert API que j'ai testé dans Postman. L'erreur est lorsque l'ajout de cela ne peut pas abonner. Les données push sont vides
@onik mais pourquoi cela enregistre dans la base de données les nouvelles données que j'ai entrées. Le problème est que les données de souscription sont NULL. S'il vous plaît aider. où est l'erreur. Son été 2 jours et je ne peux toujours pas le résoudre.
Pouvez-vous montrer la demande postale complète, y compris l'en-tête de réponse et le corps de réponse?
@Mathiasf usersComponent.html: 21 error TypeError: Impossible de lire la propriété 'Nom d'utilisateur' de NULL à Object.Eval [comme mise à jour de la mise à jour] (usercomponent.html: 21) sur objet.debugupdaterender [comme point de vue de la mise à jour] (Core.js: 23937) à CheckandupDateView (core.js: 23312) à CallViewaction (core.js: 23548) à ExeceMbeddedvisViewsaction (core.js: 23511) à CheckandupDateView (core.js: 23308) à CallViewAction (Core.Js: 23548) at Execcomponentviewsaction (core.js: 23490) à CheckandupDateView (Core.Js: 23313) à Callviewaction (Core.Js: 23548)
Je voulais dire le journal du trafic http (comme de Fiddler ou des outils F12)