Node.js中使用fetch发送Buffer时如何避免实验性警告?
解决Node.js中
buffer.File实验性警告的方案 你遇到的警告是因为在Node.js环境中使用Blob对象时,底层会调用实验阶段的buffer.File API,这是Node.js尚未稳定的特性,因此会触发警告。
修改方案
直接用Node.js原生的Buffer替代Blob来构造文件内容,FormData支持直接接收Buffer作为文件数据,不会触发实验性API:
const buffer = Buffer.from(xml, 'utf8') // 将xml文本转为Buffer const formData = new FormData() formData.append('action-xmlagentxmlfile', buffer, 'xmlfile.xml') // 传入Buffer替代Blob const response = await fetch(`https://www.szamlazz.hu/szamla/`, { method: 'POST', body: formData, }) const text = await response.text() await db.collection('logs').insertOne({ service: 'prepareAndSendInvoice', createdAt: new Date(), severity: 'log', message: 'Sending invoice response received', status: response.status, text, }) if (response.status === 200 && !response.headers.has('szlahu_error')) { // 后续逻辑 }
说明
Buffer.from(xml, 'utf8')把XML文本转为Node.js原生的二进制缓冲区,这是处理文本文件内容的标准方式。- Node.js环境下的
FormData(无论内置还是第三方库提供的)都兼容Buffer作为文件参数,完全不需要依赖浏览器环境的Blob对象,这样就能避开实验性API的警告,同时代码运行逻辑不受影响。
内容的提问来源于stack exchange,提问作者János
相关产品推荐
相关产品推荐

