IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Tableau associatif en session


Sujet :

NodeJS

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut Tableau associatif en session
    Bonjour à tous,

    Je débute sur nodejs depuis peu et je bute sur une façon de pensée. Je vais vous donner un exemple simplifié de ce que je cherche à mettre en place.
    Sur mon site je me sert souvent d'une liste de catégorie ( ex:voiture, moto, avion, tondeuse ), cette liste est stockée en bdd pour modifiable via un backoffice. Je voudrais, lors de la connexion au site sur n'importe quelle page construire un tableau associatif lié à la session du visiteur

    Ma façon de penser :
    -connection au site
    - testé si une session est active
    - si pas de session active
    - exécution requête sql
    - construction tableau associative
    - stockage du tableau dans la session
    - si session active, rien à faire le tableau devrait déjà être stocké

    En nodejs, j'ai mis en place mes routes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    require('./routing/profile');
    require('./routing/contact');
    require('./routing/index');
    ...
    Pour faire mes tests, dans mon fichier app.js j'ai ajouté avant les require:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    app.all('*', function (req, res, next){
    	if (!req.session.constanteLoaded) {
                    lib.loadConstante(req, res, next);
    	} else {
    		res.locals = {session: req.session, categorie: req.session.categorie};
    		next();
    	}
    })

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    exports.loadConstante = function(req, res, next){
    	connection.query(mysql.format(req_categorie_sel1), function(err, rows) {
    				for (var name in rows) {
    					categorie[rows[name].nom_fr] = rows[name].idcategorie;
    				}
    				res.locals = {session: req.session, categorie: req.session.categorie};
    				req.session.constanteLoaded = true;
    				next();
    		});	
    }
    Mais encore une fois je me heurte à la logique des callbacks, lorsque mon controller envoie la page categorie est undefined.
    Et au deuxième affichage 'categorie' est bien remplie.

    En cherchant sur google, j'ai trouvé des techniques pour faire du synchrone mais elles le plaisent pas.

    Pourriez vous me dire si il y a une façon "propre" d'arriver au résultat recherché ?

    Merci par avance.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2004
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 189
    Points : 80
    Points
    80
    Par défaut
    Bon bah finalement mon code fonctionne

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. loop sur tableau associatif
    Par Plawi dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/02/2005, 11h29
  2. tableau associatif en asp ?
    Par bigsister dans le forum ASP
    Réponses: 5
    Dernier message: 26/01/2005, 16h47
  3. asp tableau associatif
    Par rfernandez dans le forum ASP
    Réponses: 6
    Dernier message: 19/12/2003, 18h58
  4. [langage] TRI TABLEAU ASSOCIATIF
    Par proner dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2003, 16h38
  5. [langage] Réinitialiser un tableau associatif.
    Par totox17 dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2003, 16h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo