我在将旧代码同步到新代码,代码如下:
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))`
得到了接近正确的结果,如下:
但正确的结果应该是:
这个问题看起来是由于在 Node.js 中使用 formData.getLength()
方法时出现的错误。在新版本的 Node.js 中,formData.getLength()
方法已经被移除,因此您遇到了 TypeError: formData.getLength is not a function
的错误。
如果您需要获取 FormData 对象的总长度,可以使用 formData.entries().next().value.length
来代替 formData.getLength()
。下面是一个修改后的代码示例:
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.entries().next().value.length.then(length => { resolve(length); }).catch(err => { reject(err); });});
这样,您可以通过 formData.entries().next().value.length
获取 FormData 对象的总长度,并将其作为 Promise 的结果返回。请注意,这种方法适用于 Node.js 10.0.0 及以上版本。如果您使用的是旧版本的 Node.js,您可以使用 formData.getLength()
方法。
本文向大家介绍如何解决VisualSVN Server 安装提示错误 Repositories is not a valid short file name,包括了如何解决VisualSVN Server 安装提示错误 Repositories is not a valid short file name的使用技巧和注意事项,需要的朋友参考一下 最近安装新版 VisualSVN Server 总
描述 (Description) css( name, value )方法将单个样式属性设置为所有匹配元素的值。 语法 (Syntax) 以下是使用此方法的简单语法 - <i>selector</i>.css( name, value ) 参数 (Parameters) 以下是此方法使用的所有参数的说明 - name - 要设置的属性的名称。 value - 属性的值。 例子 (Example)
尝试将流数据从MYSQL迁移到Kinesis时出错。帮我修一下。 botocore.exceptions.ClientError:调用PutRecord操作时发生错误(ValidationException):检测到1个验证错误:“streamName”处的值“”未能满足约束:成员必须满足正则表达式模式:[a-zA-Z0-9.-]
vue项目打包上线之后 请求地址错乱 不知道啥问题
本文向大家介绍Apache启动提示错误undefined symbol: libiconv_open解决方法,包括了Apache启动提示错误undefined symbol: libiconv_open解决方法的使用技巧和注意事项,需要的朋友参考一下 昨晚整合apache和php是实在找不到解决办法,Google 百度都转一圈了,总算在百度找回来解决方法,记录一下,这个问题是在apache启动时出
本文向大家介绍Mysql错误1366 - Incorrect integer value解决方法,包括了Mysql错误1366 - Incorrect integer value解决方法的使用技巧和注意事项,需要的朋友参考一下 由于这个数据库服务器存放的数据库比较多且都是小数据库,所以最初的时候是运行在windows服务器上的。前一段时间由于机房服务器要做调整,于是我便在一个夜深人静的夜晚对数据库