Busboy: преобразование имен полей из обозначения в скобках в обозначение объекта - PullRequest
0 голосов
/ 21 февраля 2019

При работе с busboy, я получаю поля формы в нотации в скобках, где я хотел бы, чтобы это было в нотации объекта (так как эти поля в итоге будут вложенными).

Вот пример частикод (в примере используется Map):

const asyncFetch = (req : any) => {
    const fetch = busboy({headers: req.headers});

    return new Promise((res, rej) => {
        let formData = new Map();

        fetch.on('field', (key : any, val : any) => {
            formData.set(key, val);
        });

        fetch.on('finish', () => {
            res(formData);
        });

        fetch.on('error', () => {
            rej('Malformed request');
        });

        fetch.end(req.rawBody);
    });
  };

Значение внутри каждого key заключено в квадратные скобки для обозначения вложенности.

Если данные формы были переданы как:

{
  foo: {
    bar: 'baz'
  }
}
  • key будет равно "foo[bar]"
  • val будет равно "baz"

Любой хороший способ разобрать это

...