如何从 formidable 动态构建 json

How to build json dynamically from formidable

我正在尝试从请求的表单字段动态构建一个 json 对象,这些字段接收正常,但我无法按照我的意愿构建 json。

我试过下面的方法

let userJson = {}

var form = new formidable.IncomingForm();

form.parse(req);

form.on('field', function (name, value) {
   userJson[name]=value; //didn't work
   [userJson.name]=value]; // didn't work
});

我分两步手动完成的...

var userJson = []

    var form = new formidable.IncomingForm();

    form.parse(req);

    form.on('field', function (name, value) {
        userJson.push('"' + name + '"' + ':' + '"' + value + '"')
    });

然后我做了

form.on('end', function (name, file) {
        userJson = '{' + userJson.toString() + '}'
        userJson = JSON.parse(userJson)
        console.log(userJson)
    });

因为你使用的是 parse 方法,所以你不需要构建一个 json 变量,它的回调已经为你检索了一个,就像这样:

let userJson = {};

const form = new formidable.IncomingForm();
form.parse(req, (err, fields) => {
    userJson = {...fields};
    // do whatever you want afterwards
});

希望对您有所帮助!