Bonjour à tous,

Je poste ici car mon script est un script server Javascript nodejs mais je pense que mon problème est plutôt côté code javascript pur et dur.

Ce script est appelé par un webservice REST pour interroger des tables SQL.
J'ai un problème de "portée" de variable je pense car je modifie une variable et lorsque je la renvoie je renvoie la variable initiale (non modifiée donc).

Voici mon code pour plus de clarté (enfin j'espère ^^) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var sql = "select * from dbo.epreuves where eleve_id=7";
 
mssql.query(sql, {
  success: function (results) {
    if (results[0] != null) { //epreuve trouvé ?
      for (var key in results) //parcours des résultats pour ajouter les éventuels commentaires
      {
        //recherche des commentaires dans la table epreuves_comment
        var sql2 = "select * from dbo.epreuves_comment where epreuve_id=" + results[key].id;
 
        mssql.query(sql2, {
          success: function (results2) {
            //s'il y a des commentaires à ajouter
            if (results2[0] != null) {
              results[key].commentaires = results2;
 
              //si je renvoie ici ça fonctionne mais je n'ai que les commentaires de la première epreuve (ce n'est pas le but)
              //response.send(results);
            }
          },
          error: function (err2) {
            response.send(statusCodes.INTERNAL_SERVER_ERROR, "Erreur : " + err2);
            return false;
          }
        });
      }
 
      //si je renvoie ici ça ne fonctionne pas je n'ai pas les commentaires... juste le "results" initial...
      //response.send(results);
    } else { //si ausune épreuve trouvée
      response.send(statusCodes.NOT_FOUND, "Aucune épreuve trouvée");
    }
  },
  error: function (err) {
    response.send(statusCodes.INTERNAL_SERVER_ERROR, "Erreur : " + err);
  }
});
Merci d'avance pour le coup de main

Steve