Node-RED file-out节点保存JSON字符串时报TypeError问题求助
解决Node-RED File-Out节点抛出TypeError: this is not a typed array的问题
嘿,这个报错我太熟悉了!本质原因是你传给File-Out节点的数据类型不对——HTTP In节点接收的JSON是对象类型,但File-Out节点需要的是字符串或者Buffer格式的数据,直接传JSON对象就会触发这个类型错误。
下面是具体的解决步骤:
第一步:转换JSON对象为字符串
在HTTP In节点和File-Out节点之间,添加一个Function节点(或者Change节点)来处理数据:- 如果用Function节点,粘贴这段代码:
// 将JSON对象转为格式化的字符串,方便日志阅读 msg.payload = JSON.stringify(msg.payload, null, 2); // 可选:加上时间戳让日志更清晰 // msg.payload = `${new Date().toISOString()}: ${JSON.stringify(msg.payload, null, 2)}\n`; return msg; - 如果用Change节点,选择设置
msg.payload,然后使用JSONata表达式:$stringify($payload, " ")
- 如果用Function节点,粘贴这段代码:
第二步:确认File-Out节点配置
你原本的配置(追加到文件、自动创建目录)是完全没问题的,不需要修改,只要确保它接收的是转换后的字符串即可。
这样处理后,File-Out节点就能正确把JSON日志追加到文件里,不会再抛出类型错误了。
内容的提问来源于stack exchange,提问作者Patrick Weber
相关产品推荐
相关产品推荐

