Verifier l'existance d'un noeud (Node.js et neo4j)

Bonjour à tous, je suis tout nouveau sur le site et depuis quelques jours j'ai découvert et accroché au concept porté par neo4j .
Pour un projet que je mets en place, je développe un système d'authentification avec node.js. la connection avec neo4j-driver se fait sans problème. Cependant, j'ai un soucis lorsque vient le moment de vérifier si un utilisateur ayant le même email que celui entré existe déjà dans la base de données 'MATCH (n:person {mail:{mailParam}}) RETURN n'.
Dans tout les cas un objet "userFound" m'est retourné. J'ai tenté, par la suite, d'isoler le tableau records de l'objet retourné et remplacé la condition 'if (!userFound)' par:
var tabUser = userFound.records;
If (tabUser.lenght < 0){....}
Mais rien y fait. Pour le moment j'ai du mal à détecter mon erreur, peut-être que ma requête est mal formulé (j'ai essayé une autre syntaxe avec le même résultat) .
J'espère que la capture du code illustre bien mes propos.
Je vous remercie d'avance pour votre aide.

Bonjour nelson,
Est-ce que ta requête Cypher ramène bien un noeud lorsque tu la testes dans le Neo4j Browser avec un email existant ? Est-ce que ton label est Person ou person ? La catégorie de noeuds (label) est sensible à la casse, et en général c'est une bonne pratique de les noter avec une majuscule.
Voir https://neo4j.com/docs/cypher-manual/current/syntax/naming/.
Nicolas

Bonjour Nicolas et merci pour ta reponse. Le nom de label est bien person et non person.
J'ai fait un test dans le navigateur directement, j'y ai créé des noeuds, puis je me suis servi de node pour essayer de les retrouver. Lorsqu il existe, la console retourne un tableau records remplis d'objet, sinon records est vide. Malgré le fait qu'il soit vide, la console m'indique 'user already exist'

Bonjour nelson,

Le problème se situe au niveau du JS.

sessDrive
  .run("MATCH (n:person {mail: {mailParam}}) RETURN n"), {mailParam: adresseMail}))
  .then(function(userfound) {
    ...
  })

userfound est l'objet réponse de la Promise, contenant le résultat de la query ainsi que d'autres informations. Dans ton cas, la valeur qui t'intéresses est dans userfound.records.

Le correct code pourrait être quelque chose comme cela :

sessDrive
  .run("MATCH (n:person {mail: {mailParam}}) RETURN n"), {mailParam: adresseMail}))
  .then(function(res) {
   // on récupère le user (s'il existe) dans le résultat
   userfound = res.records[0]

   done(null, userfound)
  })