使用formData.append(key, value)添加值后,console刚才的字段值发现值为null。 const submit = () => { // ··· console.log(payload); const formData = new FormData(); debugger formData.append('kb_id', payload.kb_id); console.log(formData.get('kb_id')) formData.append('doc_id ', payload.doc_id); console.log(formData.get('doc_id')) debugger // ··· } "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240921/d9aea94b5eea646b1ba4f7c57afb26f9.png) 如上图所示: 第一次打印的payload值有个字段kb_id和doc_id,且2个字段都为String类型的值; 第二次打印的为添加到formData的kb_id字段,能展示正确的值; 第三次打印的为添加到formData的doc_id字段,此时打印的值为null; 这段函数是打断点一步步执行的,中间没有其它操作。 请教一下为什么console的doc_id字段值为null。 希望console的formData的doc_id字段值为正确的payload.doc_id值。
我在将旧代码同步到新代码,代码如下: let formData = new FormData() let imgFiles = fs.createReadStream(chunk) formData.append('file', imgFiles) console.log(formData) let len = await new Promise((resolve, reject) => { return formData.getLength((err, length) => (err ? reject(err) : resolve(length))) }) 但发现了如下问题,旧代码打印 formData 结果如下: FormData { _overheadLength: 162, _valueLength: 0, _valuesToMeasure: [ ReadStream { fd: null, path: 'C:\\Users\\Dell\\Desktop\\53a37365f32c3af2ccd8d311ca73376a/1.dcdx', flags: 'r', mode: 438, start: undefined, end: Infinity, pos: undefined, bytesRead: 0, …… } 但是新代码打印 formData 结果如下: formData _FormData [FormData] { [Symbol(state)]: [ { name: 'file', value: '[object Object]' } ] } (node:15192) UnhandledPromiseRejectionWarning: TypeError: formData.getLength is not a function …… 请问有什么可能会触发我这个错误呢?还望指点,谢谢! *** 我尝试通过 "JSON.stringify" 将内容转为 json 字符串 `formData.append('file', JSON.stringify(imgFiles))` 得到了接近正确的结果,如下: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/33b3ec4c9c072751b3c633bf0ede16ea.png) 但正确的结果应该是: "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241010/8fd9878974ef7d31cb21394f466feed3.png)