Допустим, у меня есть этот маршрутМогу ли я иметь один экспресс маршрута, но несколько контроллеров в зависимости от запроса
app.route('/upload').post(???);
Есть ли способ, чтобы маршрут к различным контроллерам на основе строки запроса для Exemple?
Я знаю, что могу просто использовать разные конечные точки, или у меня мог бы быть «главный» контроллер, который действует как реле с корпусом переключателя на правый контроллер, но есть ли другой способ?
Пример: req.query.type === "x"
, тогда контроллер x вызывается, но если req.query.type === "y"
, тогда вызывается контроллер y.
Вы ищете что-то подобное http://stackoverflow.com/a/23718541/2829540? –
@KevinAmiranoff Если я правильно понимаю, этот ответ вызывает несколько контроллеров один за другим, как и для меня, он действительно вызывает один из множества вариантов в зависимости от строки запроса – Benoit
Я думаю, что вы просто неправильно проектируете. Параметры запроса должны быть параметрами для данного контроллера. Путь (например, маршрут) должен определять, какой контроллер вызывается. Вы всегда можете взломать что-нибудь (например, у вас есть небольшой код в обработчике маршрута, который решает, какой контроллер вызывать на основе параметров запроса, но я думаю, вам нужно просто исправить дизайн URL, а не взломать его. Например, вам нужно '/ upload/x' и '/ upload/y', а не помещать тип в строку запроса. – jfriend00