Как использовать fastify для отправки нескольких параметров URL? - PullRequest
0 голосов
/ 20 апреля 2020

Я объявил маршрут с помощью fastify следующим образом:

const apiService = require('./apiService');
    try {
        server.get('/api/status/*', apiService);
    } catch (err) {
        console.log(err);
        process.exit(1);
    }

Мой сервис API определен следующим образом:

async function entryFunc(request, response) {
    try {
        console.log("Params are ");
        console.log(request.params);
    } catch (err) {
        console.log(err);
    }
}

Я получаю следующий вывод при вызове API http://localhost:3002/api/status/1/2:

Params are:
{ '*': '1/2' }

URL может иметь infinite number of parth params, и поэтому я использую wildcard в своем маршруте

Я хочу изменить entryFunc(request, response) так, чтобы значения 1 и 2 хранятся в массиве, и когда я печатаю array[0], я должен получить значение как 1

1 Ответ

1 голос
/ 20 апреля 2020

Fasify использует find-my-way в качестве маршрутизатора и поддерживает все эти функции.

Если у вас всегда есть 2 параметра пути, вы должны определить свой маршрут как:

server.get('/api/status/:one/:two', apiService);

И тогда ваш params будет выглядеть так:

// /api/status/hello/world
{
  "one": "hello",
  "two": "world"
}

Что вы можете преобразовать в массив просто с помощью Object.values(request.params) // ["hello", "world"] или request.params['*'].split('/')

...