在与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"
有什么好方法可以解析吗?