Заказ промежуточного программного обеспечения в Node.js имеет значение.И поэтому ваш второй маршрут никогда не выполняется, потому что первый соответствует URL.
Давайте возьмем, например, URL «/ api / stats / сезонный / 25».Он должен выполнить второй маршрут, верно?
app.get(/api/stats/:userId/, (req, res)..........)
app.get(/api/stats/seasonal/:userId/, (req, res)..........)
Но первый маршрут будет выполнен, потому что 'season / 25' - это ваш userId
.Второй маршрут никогда этого не увидит.
Поменяйте их местами, и если дополнительный не найден, Node.js проверит следующее промежуточное ПО.
app.get(/api/stats/seasonal/:userId/, (req, res)..........)
app.get(/api/stats/:userId/, (req, res)..........)