Busboy:将字段名称从括号表示法转换为对象表示法

时间:2019-02-21 02:22:47

标签: javascript json object serialization busboy

在与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"

有什么好方法可以解析吗?

0 个答案:

没有答案