Bonjour à tous,

Je débute avec nodeJS, je bloque sur un truc qui doit être tout c.. mais je ne comprend pas

Dans une route :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
app.get('/bieres/', bieres.index);
Dans le controller correspondant j'ai :
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
exports.index = function(req, res) {
	res.render('inc_bieresListing.jade', {params: {categorie: getCategories() }});
}
 
var getCategories = function() {
	console.log('ici1');
	var temp='';
	sql.query(mysql.format(req_boissoncategorie_sel1)).done(function (r) {
		for (i = 0; i < r.length; i++) {
			temp += i + " ";
			console.log('ici2');
		}
		console.log('ici2');
		return temp;
	});
	console.log('ici3');
}
Dans les logs, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
ici1
ici3
GET /bieres/ ...
ici2
ici2
ici2
ici2
GET /css/font....
Je comprend que la fonction getCategories est bien appelé, que les instructions sont appelées dans l'ordre et le résultat correspondant à la rapidité d'exécution de chaque instruction.

Dans jade :
l'affichage de me donne '[object Object]'
l'affichage de me donne 'undefined'


Cela veux dire que la page est affichée avant d'avoir le résultat d'appel de getCategories ?