Bonsoir,
Je travaille actuellement avec nodeJS, je rencontre un problème pour faire une requête synchrone.
Avant tout mon but est de vérifier en base de donnée que l'email n'est pas déjà utilisé par un membre (j'utilise le module pg-promise) :
models/user.js
Puis dans mon controller, je demande au model (code du dessus) de me renvoyez vrai si l'adresse est déjà utiliser, cependant la requête étant asynchrone j'ai la valeur undefined :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function existEmail(value) { db.oneOrNone({ text : "SELECT * FROM users email = $1", values : [value] }) .then(function(data) { return (data) ? true : false; }) .catch(function(error) { console.log('exist', error); return false; }); }
controller/user.js
J'ai lu la doc du module pg-promise et je n'ai rien trouver de synchrone, ce que je comprend car ces contre la philosophie de node, du coup l'organisation de mon code et mal pensée ? Suis-je obligé de mélanger le model et le controller ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 /* User représente mon models */ var test = User.existEmail('email@gmail.com'); console.log(test); //undefined
Merci pour vos pistes.
Partager