Далее js - Как передать несколько параметров в URL для API? - PullRequest
1 голос
/ 04 августа 2020

Я могу передать один параметр и получить результаты из следующего js api

Документы очень полезны - https://nextjs.org/docs/api-routes/dynamic-api-routes

/api/posts/[postId].js

выше работает, но есть ли возможность передать другой параметр, как показано ниже?

/api/posts/[postId][userId].js

Имя папки в настоящее время [postId]. Я попытался переименовать его в [postId] [userId]

Мой код для api:

  let postVotes = await req.db.collection('votesPosts').count({"post":req.query.postId,"user":req.query.userId})

1 Ответ

1 голос
/ 04 августа 2020

Обычно маршруты не обрабатывают несколько параметров в одном сегменте пути URL. У вас может быть только один параметр на сегмент:

/api/entity/{param1}/{param2}/sub/{param3}

Теперь в Next JS вам также нужно разделить их, чтобы иметь 2 сегмента с параметром:

/api/posts/[postId]/[userId]

Что бы разрешить до 2 возможных файлов:

/api/posts/postId]/[userId]/index.js

, если вы делаете это с каталогом параметров + индексным файлом, или

/api/posts/postId]/[userId].js

, если вы делаете это с файлом параметров.

Выполнение этого с каталогом + индексным файлом позволяет вам добавлять фиксированные сегменты, например:

/api/posts/postId]/[userId]/popular.js
/api/posts/postId]/[userId]/private.js

Затем вы можете выполнить вызов API, как вы это делали для 2 параметров.

...