Comment vérifier en profondeur “nul” ou “indéfini” avec JS?

Dans un projet Node.JS, supposons que j’ai une réponse d’une API ou de tout autre object avec une structure comme

{ data: { info: { user: { name: "Hercules", password: "Iamthegreatest!" email: "hercules@olymp.gr" } } } } 

Accéder aux membres de l’object est assez facile. Cependant, vérifier l’existence avant d’accéder à une valeur quelconque obtient PITA.

Je peux supposer que les données sont toujours présentes. Les informations, l’utilisateur, le nom, le mot de passe et l’adresse électronique peuvent être présents ou non. Il peut y avoir un object info valide sans utilisateur et un utilisateur valide sans adresse e-mail.

Cela conduit à un code comme

 if (data && data.info && data.info.user && data.info.user.email) { var email = data.info.user.email; } 

Je vérifie seulement

 if (data.info.user.email) // do something } 

Lance une erreur si l’un des objects n’existe pas.

Y a-t-il un moyen plus court de vérifier en profondeur l’existence de telles structures?

    Dans la console de votre répertoire de projet, npm install dotty

    Puis, en haut de votre code, importez dotty avec: var dotty = require('dotty')

    alors si obj est l’object posté ci-dessus, vous pouvez appeler

    dotty.exists(obj, "data.info.user.email")

    et cela donnera true ou false au lieu de jeter une erreur.

    Voir https://www.npmjs.org/package/dotty