Это потому, что ваш or-pipe |
находится на верхнем уровне, что означает, что интерпретируется либо первая часть вашего URL, либо последняя.Вы можете проверить регулярное выражение, созданное вашим путем, с помощью этого инструмента :
/^folder\/(?:([^\/]+?))\/(?:(other|doc))\/(?:([^\/]+?))\/file\/(?:([^\/]+?))\/?$/i
Вместо этого вы должны поставить круглые скобки вокруг выражения или:
@Controller('folder/:folderId/:type(other|doc)/:docId/')
С помощью этогоtype
- еще один именованный параметр с двумя совпадающими значениями.Он будет содержать либо "other"
, либо "doc"
.