Ich habe die beiden folgenden Weg:Express Route Parsing treffen Strecken sollte es nicht
router.get('/:postId([0-9]*)', handler)
router.get('/:postId([0-9]*)/like', handler)
Der erste Weg nur Urls wie /posts/4352/
erfassen sollte, aber nicht /posts/3422/like
. Wie auch immer. Ich habe es in der für Express versucht und dort funktioniert es wie erwartet. (Versuchen Sie, /posts/:postId([0-9]*)
und /posts/2/like
einzufügen. Sie werden sehen, dass es nicht übereinstimmt.)
Was könnte in meinem Fall diese falsche Übereinstimmung verursachen?
Hinweis: Ich weiß, wenn ich die Reihenfolge ändern, als es funktioniert, aber ich bin neugierig, warum das passiert.
Wie ich bereits erwähnt aussehen wird, das weiß ich es beheben. Ich möchte das _why_ nicht das _how_ wissen. – NoNameProvided
Wie ich vielleicht schlecht formuliert habe, funktioniert das wie eine Case-Anweisung, dass es passt und bei einer ersten richtigen Übereinstimmung stoppt. also [0-9] * was eigentlich eine einzelne Zahl ist, dann etwas in Regex im Vergleich zu ([0-9] *), was eine beliebige Anzahl von Zahlen ist. –