You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 15:25:57