Lancer des actions dans un contrôleur depuis une url de la forme www.monsite.com/index.html?ctrl=user&action
Bonjour,
Je souhaite pouvoir lancer des actions dans un contrôleur depuis une url de la forme www.monsite.com/index.html?ctrl=user&action=add.
En PHP Je récupérerais les variables ctrl (user) et action (add) pour lancer la fonction « add » du fichier controller « userController ».
Le code en PHP aurait cette forme :
Code:
1 2 3 4 5 6 7 8
| $ctrl = $_GET['ctrl'];
$action = $_GET['action'];
require_once('./controller/' . $ctrl . 'Controller.php');
$ctrl = $ctrl . 'Controller';
$controller = new $ctrl($db);
$controller->$action(); |
J’ai trouvé un moyen de faire la même chose sous Node :
Code:
1 2 3 4 5 6 7 8 9
| app.get('/index.html', function(req, res) {
if (req.query.ctrl && req.query.action){
let ctrl = req.query.ctrl+"Controller";
let action = req.query.action;
eval(ctrl+"."+action+"(res)");
} else {
}
}); |
Mais ce n'est pas satisfaisant car j'utilise eval()...
J'ai beau chercher je ne trouve pas de solutions. Est-ce tout simplement parce que Node ne s'y prête pas ?
Merci d'avance pour vos lumières ;)