peut-on mettre sur un même chemin 2 fonctions d'un controller?

Par Andri rbs, il y a 8 ans


Javascript NodeJS

Bonjour tout le monde,
En gros j'ai une liste "usersAll" et "demands" l'un dans "demandsCtrlr.allDemands2" et l'autre dans"demandsCtrlr.allDemands". Le probleme c'est que j'ai essayé mais soit dans mon fichier jade, ça utilise usersAll soit demads mais pas les deux.
J'ai essayé de faire une fonction dans le route mais ça ne change rien .

// DEMANDS CRUD //router.use('/demands', demandsCtrlr.allDemands2); router.get('/demands', function (req, res, err) { if (!err) { res.send(demandsCtrlr.allDemands); } else { res.send(demandsCtrlr.allDemands2); } }); ```**demands.controller** var renderDemandsPage = function (req, res, demandsAll) { if(!req.user) return res.redirect('/login'); else if(req.user && req.user.user_role != '') return res.redirect('/denied'); return res.render('dashboard/demands-table', { title: 'Dashboard', demands: demandsAll, //usersAll: usersAll }) }; var renderDemandsPage2 = function (req, res, usersAll) { // 19/04 if (!req.user) return res.redirect('/login'); else if (req.user && req.user.user_role != '') return res.redirect('/denied'); return res.render('dashboard/demands-table', { title: 'Dashboard', usersAll : usersAll }) }; // All demands request module.exports.allDemands = (function (req, res) { var requestOptions, path; path = '/api/demands'; requestOptions = { url : apiOptions.server + path, method : "GET", json : {} }; request( requestOptions, function(err, response, body) { renderDemandsPage(req, res, body); } ); }); module.exports.allDemands2 = (function (req, res) { var requestOptions, path; path = '/api/users'; requestOptions = { url: apiOptions.server + path, method: "GET", json: {} }; request( requestOptions, function (err, response, body) { renderDemandsPage2(req, res, body); } ); });

Merci d'avance. Je ne sais pas s'il faut utiliser un fonction comme res.send ou autre.

2 réponses

betaWeb, il y a 8 ans

Salut, pourquoi ne fais tu pas juste une fonction générique que tu appelles via une route et voilà problème réglé.

Andri rbs, il y a 8 ans

En gros c'est une fonction qui génère les 2 listes et ensuite que j'appelle via la route? je vais essayer, merci
Il n'y aurait pas un moyen d'executer la route comme ceci :

router.get('/demands', async.parallel(demandsCtrlr.allDemands, demandsCtrlr.allDemands2));

genre en parallèle?