Nie jestem pewien, czy jest to błąd w Expressie, czy też robię coś nie tak (prawdopodobnie to drugie), ale stwierdzam, że wymagane .params zachowuje parametry tylko w ostatnim kroku żądania. W celu wykazania, co mam na myśli:Express Router niezdefiniowane parametry z routerem.use po podzieleniu na pliki
przykład roboczych:
router.get('/:id/test', function(req, res){
// req.params.id is not undefined
});
nie działa :(
Plik 1:
router.use('/:id', require('./file2'));
Plik 2:
router.get('/test', function(req, res){
// req.params.id is undefined?!
});
... Teraz powyższe wydaje się zupełnie nielogiczne mi się, widząc jak generator ekspresowe wyznacza trasy w powyższy sposób - i musi jeszcze zostać określone w drodze gdzieś. Z pewnością nadal powinienem mieć dostęp do "id"?
W zasadzie brakuje mi czegoś? Czy jest to zamierzone/czy jest udokumentowane? FWIW Używam Express v4.12.0.
Nota prawna: sprawa z plikiem jest prawdopodobnie nieistotna, ale lepiej być bezpiecznym niż żałować.
Bah, wiedziałem, że będzie to coś proste, że spojrzałem na drugą. Zaskoczony, że nigdy nie wpadłem na to wcześniej ... Dzięki za podpowiedź;) – whitfin
Byłem w stanie to osiągnąć jedynie dodając '{mergeParams: true}' również w moim głównym pliku (Express 4.13.4). Edytowano odpowiedź, ponieważ niektóre osoby mogą jej potrzebować. – George