编辑:我得到了关于提到的 github 问题的回复,并按照“这个包不打算以返回字符串化数据的方式实现 toString()。如果我想要符合规范的 FormData,我需要安装提到了其他软件包。所以这不是问题,而是一个预期的未实现的功能。”
我尝试了下面的代码,看起来不错但不推荐,因为它基于文本拆分和过滤,如果文本格式发生变化,可能会产生问题。这是相同的沙箱。
const FormData = require("form-data");
var data = new FormData();
data.append("modid", "IM");
data.append("token", "provider");
data.append("cat_type", "3");
const objectifyFormdata = (data) => {
return data
.getBuffer()
.toString()
.split(data.getBoundary())
.filter((e) => e.includes("form-data"))
.map((e) =>
e
.replace(/[\-]+$/g, "")
.replace(/^[\-]+/g, "")
.match(/\; name\=\"([^\"]+)\"(.*)/s)
.filter((v, i) => i == 1 || i == 2)
.map((e) => e.trim())
)
.reduce((acc, cur) => {
acc[cur[0]] = cur[1];
return acc;
}, {});
};
console.log(objectifyFormdata(data));
// { modid: 'IM', token: 'provider', cat_type: '3' }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句