Получить полный маршрут URL ExpressJS - PullRequest
0 голосов
/ 31 августа 2018

Я хочу получить URL маршрута в экспресс js.

http://localhost:9310/api/arsys/v1/entry/SimpleForm5/?fields=Request ID,Assigned To,Status,Submitter,Create Date&q=Status=New&offset=5&sort=Create Date.desc

хочу только http://localhost:9310/api/arsys/v1/entry/SimpleForm5/

Я пытался const url = req.protocol + '://' + req.headers.host + req.url;, который дает http://localhost:9310/SimpleForm5/?fields=Request%20ID,Assigned%20To,Status,Submitter,Create%20Date&q=Status=New&offset=5&sort=Create%20Date.desc

Но это не дает /api/arsys/v1/entry/. Также я не хочу, чтобы параметры запроса выводились.

Пожалуйста, помогите

1 Ответ

0 голосов
/ 31 августа 2018

Чтобы получить URL без queryParams, однако с host, originalUrl, вы можете пойти по этому пути:

const urlWithoutQueryParams = req.protocol + '://' + req.headers.host + url.parse(req.originalUrl).pathname;

Например, рассмотрим этот код:

router.route('/arsys/v1/entry/SimpleForm5/')
  .get(async (req, res) => {
    try {
      console.log(req.protocol + '://' + req.headers.host + url.parse(req.originalUrl).pathname)
      return res.status(200).send({ message: "OK" });
    } catch (error) {
      return res.status(500).send({ message: "Failure" });
    }
  });

app.use('/api', router);

app.listen(8080, () => {
  log.info('app started')
})

А когда Вы отправляете GET на:

http://localhost:8080/api/arsys/v1/entry/SimpleForm5/?fields=Request ID,Assigned To,Status,Submitter,Create Date&q=Status=New&offset=5&sort=Create Date.desc

Результат:

http://localhost:8080/api/arsys/v1/entry/SimpleForm5/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...