Разрешить URL с информацией из параметров URL - PullRequest
0 голосов
/ 08 января 2019

Меня бросили в проект Node.js на работе, и я не являюсь разработчиком Node. Моя первая задача - разрешить URL-адреса магазинов из параметра URL. Вот что должно произойти:

Исходный URL содержит параметр URL "siteName", как здесь:

https://example.com/s/Store/?siteName=SLUG

Приведенный выше URL с параметром будет преобразован в

https://example.com/s/Store/SLUG

Этот проект работает на Express ^ 4.3.0.

Я углублялся в документы по Node, но не уверен даже, с чего начать.

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Предполагая, что Store route - это страница, которую вы хотите видеть с параметрами, если вы используете параметры URL-запроса, используйте первый пример, и он соответствует вашему первому вопросу.

Если вы пытаетесь получить параметры URL без запроса, используйте второй пример.

//https://example.com/s/Store/?siteName=SLUG

app.get('/Store', function(req, res){
  let siteName = req.query.siteName,
});

//https://example.com/s/Store/SLUG/
app.get('/Store/:slug', function (req, res) {
   let slug = req.params.slug,
});
0 голосов
/ 08 января 2019

Я бы посоветовал вам посмотреть Экспресс

Решение вашей проблемы легко. Во-первых, вам нужно установить промежуточное ПО для прослушивания запросов на маршрут / s / Stores. Затем проанализируйте параметры запроса и получите значение для ключа siteName. Наконец, используйте метод res.redirect для запуска логики маршрута / s / Store / SLUG.

Решение будет выглядеть примерно так:

app.get('/s/Stores', (req, res, next) => {
  const query = req.query;
  const siteName = query.siteName;

  res.redirect('/s/Stores/' + siteName);
});

app.get('/s/Stores/:siteName', (req, res, next) => {
  const siteName = req.params.siteName;

  if (siteName === 'SLUG') {
    // do something
  }

  // do something else
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...